1.1.0 • Published 8 years ago
dtux-fetch v1.1.0
dtux-fetch
A Fetch for node and Browserify, easy to use.
Features
- support abort.
- promise.
- global data setting.
API
import { request, checkStatus, parseJSON, requestData, setGlobal } from 'dtux-fetch';
setGlobal({
data: {
_token: '222'
},
getOptions: {
mode: 'cors',
credentials: 'include',
},
postOptions: {
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
},
}
});
request({
url: 'api/test',
data: {test: 1},
beforeSend: () => {
return requestData({
url: 'api/csrf'
}).then(({data}) => ({
headers: {
token: data.data.token
},
data: {
token: data.data.token
}
}))
}
});
const requestPromise = request(
{
url: 'api/test',
type: 'post',
data: {test: 2, obj: {a: 1}},
timeout: 2000,
beforeSend: () => {
return requestData({
url: 'api/csrf'
}).then(({data}) => ({
headers: {
token: data.data.token
},
data: {
token: data.data.token
}
}))
}
}
);
requestPromise
.then(checkStatus)
.then(parseJSON)
.then(({ data }) => {
console.log(data);
});
setTimeout(() => {
requestPromise.abort();
}, 1000);Options
urla fully qualified urimethodhttp method (default:GET)headershttp headers
GETmethod default:{mode: 'cors', credentials: 'include'}POSTmethod default:headers: {'Content-Type': 'application/x-www-form-urlencoded'}
datadata for requests. Must be a queryStringorJSONobjectcontentTypesets theContent-Typeof the request. Eg:application/jsontimeouttimeout for request.mode'cors' || 'same-origin' || 'no-cors' || 'navigate'credentials'include' || 'same-origin' || 'omit'contentTypeheaders Content-TypebeforeSendhandle this function before send request