function edit_expense(val){
var id = val;
var amount = $('#expense_amount_'+id).val();
var image = $('#img_file_'+id)[0].files[0];
$.ajax
({
type:'post',
url:'{{route('edit_expense')}}',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
processData: false,
contentType: false,
data: { "_token": "{{ csrf_token() }}",'id':id, 'amount': amount,'image': image },
success:function(data)
{
$('.revnue_updated').removeClass('d-none');
$(".revnue_updated").fadeOut(3000);
}
});
};
这是我的代码,我在添加标头后也得到了csrf令牌不匹配。我想在数据中发送图像值,但显示csrf不匹配
这个问题有多种解决方案。
- 您可以将您的路由添加到VerifyCsrfToken中间件(打开app/middleware/VerifyCsrfToken.php,并将路由url附加到$except数组
- 你可以添加元标签到你的布局刀片元名称是";csrf令牌";内容为{{csrf_token((}}并将此代码添加到ajax请求中headers:{'X-CSRF-Token':$('meta[名称="CSRF令牌";]'(.attr('content'(}
另一方面,您可以将_token密钥添加到ajax数据中,并使用{{csrf_token((}}
使用"Formdata((";,下面是工作代码。我希望它能有所帮助。
function edit_expense(val){
var form_data = new FormData();
var id = val;
var amount = $('#expense_amount_'+id).val();
form_data.append('id', id);
form_data.append('amount',amount);
form_data.append('_token', '{{csrf_token()}}');
form_data.append('image',$('#img_file_'+id)[0].files);
$.ajax
({
type:'post',
url:'{{route('edit_expense')}}',
mimeType: "multipart/form-data",
async:true,
dataType: 'json',
cache: false,
processData: false,
contentType: false,
data: form_data,
success:function(data)
{
$('.revnue_updated').removeClass('d-none');
$(".revnue_updated").fadeOut(3000);
}
});
};