我试图用ajax将数据发布到Laravel后端,但是我收到'CSRF令牌不匹配'错误 .
首先,我将令牌放在html中(在正文中但在表单之外,因为它不是整个表单,它只发布了2个元素):
<input type="hidden" name="_token" id="token" value="{{ csrf_token() }}">
然后在'document ready'中,我尝试用ajax发布数据 .
data["_token"] = jQuery('#token').val();
// Also tried this:
jQuery.ajaxSetup({
headers: {
'X-CSRF-TOKEN': jQuery('#token').val()
}
})
console.log(data) // returns the array with _token: "esOKmY8Tpr4UvhTYMhWcWui0rpvYEjJ3es7ggics"
jQuery.ajax({
type: "POST",
url: '/my-route',
data: data,
success: function() {
console.log("A");
}
});
我要发布的数据只是一个较大形式的一小部分,使用这种方法,我可以自动完成表单 . 小块的html输入不在任何其他子表单中 . 也许情况可能如此?
- Form:
- A: bla // to be posted
- B: hello // to be posted
- C: smt else // no post
但是获得 Value 的工作还可以
路线:
Route::post('/my-route', 'AdminController@theFunction')->middleware('admin');
Edit :我将 <input>
更改为 <meta>
标记
2 回答
我遇到了同样的问题,试着在你的_1325562中添加包含CSRF标签
并在你的ajax代码中读取它,如下所示:
Last Update
请修改你的url变量,如下所示:
试试这个