【问题标题】:Laravel API ajax request not being authenticatedLaravel API ajax 请求未通过身份验证
【发布时间】:2021-08-04 08:55:16
【问题描述】:

我们计划使用ajax 来post 一些数据。这是我们的代码:

$.ajax({
  type: "POST",
  url: "{{route('something.someevent')}}",
  data: {
    _token: _token
  },
  success: function(o) {
    console.log(o);
  },
  dataType: "json"
});

问题是我们得到了

[HTTP/1.1 401 未授权 133ms]

如果我们删除构造上的$this->middleware('auth');,我们就能够接收数据。用户实际上是登录

如何使 API 与应用程序相同的身份验证?谢谢提前

【问题讨论】:

  • 你从哪里得到令牌?你用的是laravel护照吗?
  • @Aless55 var _token = $("meta[name='csrf-token']").attr("content");
  • Laravel 认证。我不确定那是不是护照。

标签: javascript jquery laravel laravel-8


【解决方案1】:

我们将令牌作为标头添加到所有 ajax 请求中,而不是将其包含在正文中。

您可以将以下内容添加到单个 ajax 请求中。

headers: {
    'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}

或者,如果您希望标头自动注入到您发出的每个 ajax 请求中,您可以在某处的全局脚本中定义它。

$.ajaxSetup({
    headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    }
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-19
    • 2020-12-02
    • 2015-07-25
    • 2018-07-20
    • 1970-01-01
    • 1970-01-01
    • 2021-01-12
    相关资源
    最近更新 更多