我尝试使用delete
发出ajax
请求。问题是,即使我向请求标头添加TokenMismatchException
,我也始终会X-CSRF-TOKEN
。那么任何想法我做错了什么?这是我的要求
$('#confirm-delete').click(function () {
if(tableRowId !== -1) {
var obj = {
"X-CSRF-TOKEN": $('meta[name=csrf-token]').attr('content'),
id: tableRowId
};
$.ajax({
headers: {'X-CSRF-TOKEN': $('meta[name=csrf-token]').attr('content')},
url: 'sarasas/destroy',
method: 'DELETE', // Type of response and matches what we said in the route
data: obj,
success: function(response) { // What to do if we succeed
location.reload();
},
error: function(jqXHR, textStatus, errorThrown) { // What to do if we fail
console.log(JSON.stringify(jqXHR));
console.log("AJAX error: " + textStatus + ' : ' + errorThrown);
}
});
tableRowId = -1;
}
});
答案 0 :(得分:1)
改变这个:
"X-CSRF-TOKEN": $('meta[name=csrf-token]').attr('content'),
到
"_token": $('meta[name=csrf-token]').attr('content'),
或者它是否工作添加此JavaScript为jQuery中的所有ajax请求设置默认值。最好是在您的应用中包含的js文件中:
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
})
答案 1 :(得分:0)
在视图meta
部分添加名称为 csrf-token 的head
代码,
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta name="csrf-token" content="{{ csrf_token() }}">
.......
然后在JS
文件中添加以下代码。
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});