无法将令牌从 AngularJS 发送到 Laravel API
Unable to send token from AngularJS to Laravel API
这就是我处理发送 csrf_token()
过程的方式。
在 <head>
部分中,我将标记添加为常量。
<script type="text/javascript">
var myApp = angular.module('myApp', ['ngRoute', 'ngSanitize', 'productController', 'productService'])
.constant("CSRF_TOKEN", '<?= csrf_token() ?>');
</script>
在productService
发送post数据时,我包括以下内容:
headers: {'Content-Type': 'multipart/x-www-form-urlencoded', 'X-XSRF-TOKEN': CSRF_TOKEN}
然后我从 Laravel 收到错误:
DecryptException: invalid data
如果我从上面的 headers:
中删除 X-XSRF-TOKEN
,那么我会收到 TokenMismatchException
。
根据另一个 post 的建议,我加密了 csrf_token()
,因为 Laravel 期望令牌被加密,但即便如此我仍然收到 DecryptException: invalid data
。
将 X-XSRF-TOKEN
更改为 X-CSRF-TOKEN
解决了问题。
测试时,我不得不销毁 cookie 并重新启动浏览器以使令牌生效。
将 XSRF
更改为 CSRF
并重新启动浏览器。
这就是我处理发送 csrf_token()
过程的方式。
在 <head>
部分中,我将标记添加为常量。
<script type="text/javascript">
var myApp = angular.module('myApp', ['ngRoute', 'ngSanitize', 'productController', 'productService'])
.constant("CSRF_TOKEN", '<?= csrf_token() ?>');
</script>
在productService
发送post数据时,我包括以下内容:
headers: {'Content-Type': 'multipart/x-www-form-urlencoded', 'X-XSRF-TOKEN': CSRF_TOKEN}
然后我从 Laravel 收到错误:
DecryptException: invalid data
如果我从上面的 headers:
中删除 X-XSRF-TOKEN
,那么我会收到 TokenMismatchException
。
根据另一个 post 的建议,我加密了 csrf_token()
,因为 Laravel 期望令牌被加密,但即便如此我仍然收到 DecryptException: invalid data
。
将 X-XSRF-TOKEN
更改为 X-CSRF-TOKEN
解决了问题。
测试时,我不得不销毁 cookie 并重新启动浏览器以使令牌生效。
将 XSRF
更改为 CSRF
并重新启动浏览器。