仅使用Safari
(最新版本High Sierra)我在每次非GET请求时都会收到401
错误。
我用邮递员测试了选项请求,它返回了200 OK
响应。
问题是未发送Authorization标头。这是请求:safari request and response
我在Chrome,Firefox和Opera上进行了测试,但它确实有效。这是代码,注意我没有使用axios
(.post,.get)的简短版本,如here所述
let url = (edit)?'/api/things/'+vm.nthing.id:'/api/things';
let method = (edit)?'patch':'put';
axios({
method:method,
url:url,
headers:vm.headers,
data:{
final: vm.nthing.final,
note: vm.nthing.note
}
})
.then(res=>{
//Some modal stuff
})
.catch(err=>{
console.log(err);
});
标头var是:
headers:{
"Authorization":"Bearer "+this.$auth.getToken()
},
好吧显然,在Safari
中忽略了具有字符串属性的对象,因此标头中的授权元素从未传递,因此401
错误。
不行
let headers={
"Authorization":"abcdef...."
}
作品
let headers={
Authorization:"abcdef...."
}
还要注意axios的url中的尾部斜杠。