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
url
a fully qualified urimethod
http method (default: GET
)headers
http headers
GET
method default: {mode: 'cors', credentials: 'include'}
POST
method default: headers: {'Content-Type': 'application/x-www-form-urlencoded'}
data
data for requests. Must be a query String
or JSON
objectcontentType
sets the Content-Type
of the request. Eg: application/json
timeout
timeout for request.mode
'cors' || 'same-origin' || 'no-cors' || 'navigate'credentials
'include' || 'same-origin' || 'omit'contentType
headers Content-TypebeforeSend
handle this function before send request