【问题标题】:Dropzone with laravel, it displays 419 error使用 laravel 的 Dropzone,它显示 419 错误
【发布时间】:2020-09-02 15:42:37
【问题描述】:

我已经测试了我所看到的所有内容,但对我没有用,我正在使用带有 laravel 的 dropzone,我的问题是它显示 419 错误,我知道这与 csrf 令牌有关,但我无法修复它。

我的 HTML 代码是这样的:

<div id="my-dropzone" class="dropzone"></div>

我的 javascript 代码是这样的:

Dropzone.autoDiscover = false;

$(document).ready(function(){

   $('#my-dropzone').dropzone({
      url: 'http://54.161.128.196/pre_image/store',
      headers: {
        'X-CSRF-TOKEN': $('meta[name="token"]').attr('content')
      },
      method: 'post',
      dictResponseError: 'Error uploading file!'
   });

});

我的 Laravel 路线:

Route::post('/pre_image/store', 'Pre_ImageController@store');

我把这个放在中间件里看看能不能去掉419错误:

在 VerifyCsrfToken 中间件中

protected $except = [
    'pre_image/store'
];

它不起作用,我在元数据中有这样的 csrf 令牌:

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

这是错误截图:

所以我想知道如果该路由被禁用以验证令牌甚至分配了令牌,为什么会显示 419 错误是什么问题?

谢谢!

【问题讨论】:

  • 请同时发布错误截图。而且您的元名称是 csrf-token 而不是 token。

标签: javascript jquery laravel dropzone


【解决方案1】:

Dropzone 也有类似的问题。我最终将标题拉到页面顶部的 ajax 函数中,而不是在 DZ 标题部分中。这允许任何通用 ajax 请求具有正确的 CSRF。

试试这个:

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

【讨论】:

    猜你喜欢
    • 2018-03-10
    • 1970-01-01
    • 2019-03-16
    • 2017-12-05
    • 1970-01-01
    • 1970-01-01
    • 2021-10-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多