【问题标题】:(Laravel 5.6, vue) Axios 401 error with PUT,POST,PATCH on Safari(Laravel 5.6,vue)Axios 401 错误与 Safari 上的 PUT、POST、PATCH
【发布时间】:2019-02-21 06:20:08
【问题描述】:

仅使用 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);
      });

标题变量是:

headers:{
    "Authorization":"Bearer "+this.$auth.getToken()
  },

【问题讨论】:

  • 同样的错误!请问有什么解决办法吗?

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


【解决方案1】:

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

不起作用

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

作品

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

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

【讨论】:

    猜你喜欢
    • 2018-11-17
    • 2020-04-24
    • 1970-01-01
    • 1970-01-01
    • 2018-04-25
    • 2021-07-08
    • 2018-08-10
    • 2020-05-09
    • 1970-01-01
    相关资源
    最近更新 更多