(Laravel 5.6,vue)在Safari上出现PUT,POST,PATCH的Axios 401错误

时间:2018-09-17 10:36:01

标签: laravel vue.js axios laravel-5.6 laravel-passport

仅使用Safari(最新版本的High Sierra),对于每个不是GET的请求,我都会收到401错误。

我用邮递员测试了选项请求,并返回了200 OK响应。

问题是未发送授权标头。 这是请求: safari request and response

我在Chrome,Firefox和Opera上对其进行了测试,并且可以正常工作。 这是代码,请注意,我没有使用here

中所述的axios(。post,.get)的简短版本
      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()
  },

1 个答案:

答案 0 :(得分:0)

好吧,显然带有字符串属性的对象在Safari中会被忽略,因此标头中的 authorization 元素从未被传递,因此出现了401错误。

不起作用

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

工程

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

还要注意axios网址中的斜杠。