【问题标题】:ajax 419 Error in LaravelLaravel 中的 ajax 419 错误
【发布时间】:2018-06-19 16:33:31
【问题描述】:

您好,即使我尝试在刀片语法 url、普通 javasript url、jason 数据格式或使用 url 发送我的数据之间切换技术时,我仍然出现 419 错误。请帮助 我还在头部包含了 X-CSRF:

<meta name="csrf-token" content="{{ csrf_token() }}">

我的电话:

$.ajaxSetup({
    headers: { 'X-CSRF-Token' : $('meta[name=_token]').attr('content') }
});
$.ajax({
  url:'{{url("/HeatMapCoordinates")}}',
  data:{"finalPointArray" :finalPointsMap,
        "tourId":tourId
        },
  dataType: 'html',
  async:true,
  type:'post',
  processData: false,
  contentType: false,
  success:function(response){
    console.log('response');
  },
  error:function(e){
    console.log('error');
  }
});
}

我的路线: Route::resource('/HeatMapCoordinates','HeatMapCoordinatesController'); 我的控制器:

    public function store(Request $request)
    {

        $this->validate($request, array(
            'finalPointArray' => 'required',
            'tourId' => 'required',
        ));

..... }

【问题讨论】:

    标签: javascript html ajax laravel


    【解决方案1】:

    您尚未包含 CSRF 令牌。该字段称为csrf-token 而不是_token,它需要包含在"" 中才能成为有效的选择器。

    $.ajaxSetup({
      headers: { 'X-CSRF-Token' : $('meta[name="csrf-token"]').attr('content') } 
    });
    

    【讨论】:

    • 你好@mikeMiller 谢谢你的建议但是当我尝试时控制台显示了这个错误。知道是什么原因造成的吗?错误:app.js:1 POST localhost/switch_to_vr/public/HeatMapCoordinates 422(无法处理的实体)
    • 422 状态码相关的 Laravel 验证。你确定,你发布所需的数据和正确的格式吗?
    • @SandyAlAkhras 正如@webdevtr 所说的验证错误,因此您的一个JS变量中可能有空值; finalPointsMaptourId。如果你这样做 console.log( finalPointsMap , tourId ) 它会告诉你哪些是空的。或者通过 console.log(e) 检查响应正文以查看来自您的 API 的验证消息
    • 工作结果是我在控制器中有一个语法错误,导致了 422(不可处理的实体)错误。感谢您的帮助!
    【解决方案2】:

    当尝试在 ajax 中调用控制器路由时,您不需要使用刀片语法。您可以像这样简单地调用 url

    url: '/HeatMapCoordinates'

    如果您在 html 页面中包含 csrf 令牌,请尝试将其包含在您的 ajax 数据中

    '_token': $('input[name=_token]').val(),

    您的代码将如下所示

    $.ajax({
      url: '/HeatMapCoordinates',
      data:{ 
               "_token": $('input[name=_token]').val(),
               "finalPointArray" :finalPointsMap,
               "tourId":tourId
            },
    

    【讨论】:

      猜你喜欢
      • 2018-03-10
      • 1970-01-01
      • 2018-12-18
      • 2019-03-16
      • 1970-01-01
      • 2018-08-31
      • 2018-05-06
      • 2018-08-24
      • 2019-08-26
      相关资源
      最近更新 更多