axios和ios9那点破事

问题描述

ios9 上用 axios 无法发出请求,server端没有收到

尝试

promise的polyfill没有作用
不想根据ios版本更换请求lib

解决

问题在于我们因为jwt,对请求做了劫持,添加了一个header

http.interceptors.request.use(
config => {
config.headers["Authorization"] = localStorage.getItem("token")
? "Bearer " + localStorage.getItem("token")
: "Bearer";
if (config.method === "post" || config.method === "put") {
config.data = qs.stringify(config.data);
// 对post和put进行数据字符串化处理,若Content-Type:application/json则不需要
config.headers["Content-Type"] = postHeaders;
}
return config;
},
error => {
// loadingInstance.close();
Promise.reject(error);
}
);

原始代码为:

config.headers["Authorization"] = "Bearer " + localStorage.getItem("token")

当登录的时候,这个token是空的,所以header里是 “Bearer “, 问题就在那个空格上.

改成上面的版本就好了