相关代码如下所示:
var csrfToken = "{{ csrf_token() }}";
xmlhttp.open("POST", "/internal/v1/create/strategy", true);
xmlhttp.setRequestHeader('X-CSRF-TOKEN', csrfToken);
postString = "param1=" + varOne + "¶m2=" + 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/