這就是我如何處理sendig csrf_token()
的過程。無法將令牌從AngularJS發送到Laravel API
在<head>
部分,我將令牌添加爲常量。
<script type="text/javascript">
var myApp = angular.module('myApp', ['ngRoute', 'ngSanitize', 'productController', 'productService'])
.constant("CSRF_TOKEN", '<?= csrf_token() ?>');
</script>
在productService
當我發送後的數據,我包括以下:
headers: {'Content-Type': 'multipart/x-www-form-urlencoded', 'X-XSRF-TOKEN': CSRF_TOKEN}
然後我從Laravel收到錯誤:
DecryptException: invalid data
如果我從上方headers:
除去X-XSRF-TOKEN
,那麼我收到TokenMismatchException
。
正如另一篇文章中所建議的,我加密csrf_token()
,因爲Laravel期望令牌被加密,但即使如此,我仍然收到DecryptException: invalid data
。
使用瀏覽器的*網絡*控制檯確認請求中發送的值。如果包含任何不安全的字符(如單引號),也就是'.constant('CSRF_TOKEN',<?= json_encode(csrf_token())?>),我還會使用'json_encode() – Phil 2015-02-23 23:59:03
@菲爾是的。我欣賞網絡控制檯的提示,我一直只使用原始控制檯。 – user2094178 2015-02-24 00:05:35