fetch-plugin
fetch polyfill with TIMEOUT setting and JSONP, extend from whatwg-fetch
if you need other feature or got some issue, please let me know~
Installation
via npm:
$ npm install fetch-plugin
also could load in browers directly, use "_fetch" as a UMD
<script src="https://raw.githubusercontent.com/jfw10973/fetch-plugin/master/dist/index.umd.min.js"></script>
API
default Option
{
"headers": {
"Content-Type": "application/json"
},
"mode": "same-origin",
"credentials": "include",
"cache": "reload",
"redirect": "follow",
"referrer": "client",
"timeout": 30000
}
set global options
fetch.globalOption = {
timeout: 3000,
fetchStart: function () {
console.log("start")
},
fetchSuccess: function (response) {
console.log("pass", response)
},
fetchError: function (error) {
console.log(error.message)
}
}
it will be merged, just like ajaxSetup in jQuery, and you can defined your options in every request
for get request
fetch.getJSON(URL, [DATA], [OPTIONS])
for post request
fetch.postJSON(URL, [DATA], [OPTIONS])
for put request
fetch.putJSON(URL, [DATA], [OPTIONS])
for delete request
fetch.deleteJSON(URL, [DATA], [OPTIONS])
for jsonp request, options only available for callbackName
fetch.getJSONP(URL, [DATA], [OPTIONS])
example
normal get request
import fetch from "fetch-plugin"
fetch.getJSON("targetURL.com",{
a: "a",
b: "b"
}).then( function (result) {
console.log(result)
}, function (error) {
console.log(error)
})
normal get request with status hook
import fetch from "fetch-plugin"
fetch.getJSON("targetURL.com",{
a: "a",
b: "b"
}, {
timeout: 10000
}).then( function (result) {
console.log(result)
}, function (error) {
console.log(error)
})
Manual
fetch polyfill
License
MIT