繁体   English   中英

CSRF 令牌不匹配。”,异常:“Symfony\Component\HttpKernel\Exception\HttpException

[英]CSRF token mismatch.", exception: "Symfony\Component\HttpKernel\Exception\HttpException

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);
    }
   });
};

这是我的代码,在添加 header 后,我得到 csrf 令牌不匹配。 我想在数据中发送图像值,但显示 csrf 不匹配

对于这个问题,您有多种解决方案。

  1. 您可以将您的路由添加到 VerifyCsrfToken 中间件(打开 app/middleware/verifycsrftoken.php 和 append 您的路由 Z572D4E421E5E6B9BC11D815E8A027112 到 $except 数组
  2. 您可以将元标记添加到布局刀片元名称为“csrf-token”,内容为 {{ csrf_token() }} 并将此代码添加到您的 ajax 请求标头中:{'X-CSRF-Token': $('meta [name="csrf-token"]').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);
    }
   });
};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM