Laravel API ajax 请求未通过身份验证
Posted
技术标签:
【中文标题】Laravel API ajax 请求未通过身份验证【英文标题】:Laravel API ajax request not being authenticated 【发布时间】: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 认证。我不确定那是不是护照。 【参考方案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')
);
【讨论】:
以上是关于Laravel API ajax 请求未通过身份验证的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 5.3 + Passport:总是未经身份验证的错误
Laravel + React,使用 Laravel 身份验证的 api
Laravel 5.7 Ajax 发布请求返回 419 状态码
如何通过 jQuery AJAX 从使用 OAuth 1.0 身份验证的 Upwork API 请求 JSONP 文件?