遇见问题:在axios封装请求方法中设置了请求头,request headers中没有出现
service.interceptors.request.use(
config => {
config.data = JSON.stringify(config.data);
config.headers['Authorization'] = getToken();
config.headers['Content-Type'] = "application/json;charset=utf-8";
return config;
},
error => {
return Promise.reject();
}
);
问题原因:npm下axios的源码中,当未设置requestData的时候会删掉Content-Type的设置
// Add headers to the request
if ('setRequestHeader' in request) {
utils.forEach(requestHeaders, function setRequestHeader(val, key) {
if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {
// Remove Content-Type if data is undefined
delete requestHeaders[key];
} else {
// Otherwise add header to the request
request.setRequestHeader(key, val);
}
});
}
解决方法:
1.注释掉源码中 if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') 的判断
2.给requestData赋值 config.data = true
service.interceptors.request.use(
config => {
config.data = JSON.stringify(config.data);
config.headers['Authorization'] = getToken();
config.data = true
config.headers[ 'Content-Type'] = "application/json;charset=utf-8";
return config;
},
error => {
return Promise.reject();
}
);
参考资料:https://blog.csdn.net/qq_24729895/article/details/80367460