相关代码如下所示:

var csrfToken = "{{ csrf_token() }}";
xmlhttp.open("POST", "/internal/v1/create/strategy", true);
xmlhttp.setRequestHeader('X-CSRF-TOKEN', csrfToken);
postString = "param1=" + varOne + "&param2=" + varTwo;
xmlhttp.send(postString);

我已经尝试了好几个小时了,老实说,我现在不知道该怎么办。请注意,如果我使用form方法,则一切正常。我还尝试过在postString中将CSRF token 作为参数发送:“_token =” + csrfToken

最佳答案

该问题通过两部分解决方案得以解决:

必须为Laravel添加“Content-type” header ,以便能够读取POST的参数:

xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

另外,在config/session.php文件中,还必须将“domain”变量指向应用程序的实际域,而不是默认值null。这可能是在初始设置过程中完成的,但是我一定忘了这么做。

完成这两项更改后,POST请求将通过AJAX调用成功通过。

关于php - Laravel 5.1 xmlHttpRequest AJAX POST TokenMismatchException,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33326078/

10-13 01:43