javascript - Laravel API ajax 请求未通过身份验证
问题描述
我们计划对post
一些数据使用ajax。这是我们的代码:
$.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');
on 结构,我们就能够接收数据。用户实际上已登录。
如何使 API 的身份验证与应用程序相同?谢谢是提前
解决方案
我们将令牌作为标头添加到所有 ajax 请求中,而不是将其包含在正文中。
您可以将以下内容添加到单个 ajax 请求中。
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
或者,如果您希望标头自动注入到您发出的每个 ajax 请求中,您可以在某处的全局脚本中定义它。
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
推荐阅读
- java - 通用 MergeSort Java 实现堆栈溢出错误
- arrays - 打字稿:未捕获的类型错误,无法读取未定义的属性“推送”
- html - 将图像添加到 HTML 电子邮件
- twilio - 使用 npm twilio 包时如何在 WhatsApp 中实现打字指示器
- python - 根据索引从 Python 列表中过滤值
- html - Angular 6 中的自定义组件:布尔属性的值
- java - 如何在scrollView.setOnScrollChangeListener中获取scrollY的最大值
- python - 从 HTTP 响应到 csv
- c# - 如何将 Matrix 转换为 Mat 类型?
- python - 向独立进程发送信号/事件