(Laravel 5.6,vue)Axios 401在Safari上使用PUT,POST,PATCH时出错

问题描述 投票:0回答:1

仅使用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()
  },
laravel vue.js axios laravel-5.6 laravel-passport
1个回答
0
投票

好吧显然,在Safari中忽略了具有字符串属性的对象,因此标头中的授权元素从未传递,因此401错误。

不行

let headers={
 "Authorization":"abcdef...."
}

作品

let headers={
 Authorization:"abcdef...."
}

还要注意axios的url中的尾部斜杠。

© www.soinside.com 2019 - 2024. All rights reserved.