Laravel - CK Editor在上传图片时返回419 http状态

时间:2018-03-18 09:07:06

标签: laravel laravel-5 ckeditor

我想使用ck编辑器存储我的图像。但即使我将csrf标记设置为请求标头,它也会返回419 http状态。

let token = document.head.querySelector('[name=csrf-token]').content,
document.querySelector('#article_editor').on('fileUploadRequest', function (evt) {
    var xhr = evt.data.fileLoader.xhr;
        xhr.setRequestHeader('Cache-Control', 'no-cache');
        xhr.setRequestHeader('X-File-Name', this.fileName);
        xhr.setRequestHeader('X-File-Size', this.total);
        xhr.setRequestHeader('X-CSRF-Token', token);
       xhr.send(this.file);

    // Prevented the default behavior.
       evt.stop()
});

我该如何解决这个问题?

我已经在head标签之间设置了csrf meta。尽管如此,我仍然遇到错误..

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

2 个答案:

答案 0 :(得分:2)

我有一个类似的问题。我确实将上传URL添加到 VerifyCsrfToken.php (应用程序/ Http /中间件)中。在此文件中,我添加了“上传图片/” 。这样可以解决您的问题。但是,发布没有CSRF的数据可能会带来风险。

答案 1 :(得分:0)

只需添加刀片:

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

然后在您的simpleUpload配置中(如果使用的话):

simpleUpload: {
      uploadUrl: '/* your path */',
      headers: {
        'X-CSRF-TOKEN': document.querySelector('meta[name="csrf-token"]').getAttribute('content'),
      }
    }