我正在使用Angular JS开发使用Laravel5构建的 API 和客户端。两者完全分开且独立。
为了AJAX进入API,我的客户端成功请求在给定端点(csrf_token()
)使用Laravel的/token
生成的令牌,然后将其存储在{ {1}}稍后将用作 POST 或 PUT 请求中的 _token 字段。
但是,当发送AJAX PUT 或 POST 请求时,我会抛出 TokenMismatchException 错误。
我在输出中打印匹配的令牌,在每次AJAX请求时打印不同的令牌,但是通过浏览器加载$rootScope
(常规HTTP请求),每次输出相同的令牌。
这里有什么想法?
我不知道这是不是设计的,我的应用程序逻辑存在缺陷,或者还有其他问题失败。
答案 0 :(得分:0)
您需要将标记添加到标题中并将其包含在ajax调用中。使用
<meta name="csrf-token" content="{{ csrf_token() }}" />
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
这是在
的文档中