使用dropzone发送正确的标头

时间:2017-07-15 09:20:50

标签: ajax laravel vue.js dropzone.js

我正在使用dropzone http://www.dropzonejs.com/但是作为vuejs组件:https://github.com/rowanwins/vue-dropzone

我也在使用laravel,它有一个名为csrf-token的东西,它应该随每个请求一起发送到服务器,以便服务器可以验证请求是否合法。

我需要在使用dropzone上传图片时发送此令牌。 Laravel文档建议:

https://laravel.com/docs/5.4/csrf#csrf-x-csrf-token

componentWillReceiveProps(nextProps) {
    if (nextProps.exportCount > this.props.exportCount) {
        this.export();
    }
}

因此,在我安装的dropzone组件中,我放置了以下代码:

Then, once you have created the meta tag, you can instruct a library like
jQuery to automatically add the token to all request headers. This provides
simple, convenient CSRF protection for your AJAX based applications:

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

By default, the resources/assets/js/bootstrap.js file registers the value of
the  csrf-token meta tag with the Axios HTTP library. If you are not using
this library, you will need to manually configure this behavior for your application.

当我的dropzone将文件上传到服务器时,我从服务器获得异常,因为缺少csrf-token。我还检查了发送到服务器的标头,并且令牌不存在。

我的问题是,dropzone实际上是使用ajax发送图片吗?如果是,那么为什么上面的代码没有添加正确的标题,如果它不使用ajax发送标题,那么我该如何设置正确的标题?

1 个答案:

答案 0 :(得分:1)

Dropzone vue组件将标头作为道具。您需要使用您希望dropzone发送到服务器的标头来设置此prop,它将起作用。