背景:请求失败后,因跨域引起的不能传递statusCode问题,通过设置前后台选项解决,这里先总结一下axios的使用
一、安装与配置:
安装:
npm install axios
axios使用API:
1.默认使用的是get请求:
//Send a GET request (default method)
axios(‘/user/12345‘);
2.常用2种请求方式:
//GET :获取图片
axios({
method:‘get‘,
url:‘http://bit.ly/2mTM3nY‘,
responseType:‘stream‘})
.then(function(response) {
response.data.pipe(fs.createWriteStream(‘ada_lovelace.jpg‘))
});//Send a POST request
axios({
method:‘post‘,
url:‘/user/12345‘,
data: {
firstName:‘Fred‘,
lastName:‘Flintstone‘}
});
3.自定义配置axios:
//全局more设置
axios.defaults.baseURL = ‘https://api.example.com‘;
axios.defaults.headers.common[‘Authorization‘] =AUTH_TOKEN;
axios.defaults.headers.post[‘Content-Type‘] = ‘application/x-www-form-urlencoded‘;//自定义设置
const instance =axios.create({
baseURL:‘https://some-domain.com/api/‘,
timeout:1000,
headers: {‘X-Custom-Header‘: ‘foobar‘}
});
//全局与个别请求设置
instance.defaults.timeout= 2500;
instance.get(‘/longRequest‘, {
timeout:5000});
//设置token
const CancelToken =axios.CancelToken;
const source=CancelToken.source();
axios.get(‘/user/12345‘, {
cancelToken: source.token
}).catch(function(thrown) {if(axios.isCancel(thrown)) {
console.log(‘Request canceled‘, thrown.message);
}else{//handle error
}
});
axios.post(‘/user/12345‘, {
name:‘new name‘}, {
cancelToken: source.token
})//cancel the request (the message parameter is optional)
source.cancel(‘Operation canceled by the user.‘);
//自定义取消token
const CancelToken =axios.CancelToken;
let cancel;
axios.get(‘/user/12345‘, {
cancelToken:new CancelToken(functionexecutor(c) {//An executor function receives a cancel function as a parameter
cancel =c;
})
});//cancel the request
cancel();
4.请求配置:
{
url:‘/user‘,
method:‘get‘, //default
baseURL: ‘https://some-domain.com/api/‘,
transformRequest: [function(d