【问题标题】:codeigniter dropzone ajax upload with csrf使用csrf的codeigniter dropzone ajax上传
【发布时间】:2016-06-08 00:58:42
【问题描述】:

我正在使用 dropZone JS jquery 插件使用 codeigniter 上传图片,表单中有一个用于表单的重置按钮,当用户上传图片时,他可以重置表单以进行新上传,但在上传时重置后会显示一条消息

您请求的操作不被允许。

顺便说一下,第一次上传成功,然后失败并显示该消息 请注意,我正在使用 csrf 保护

这里是 dropzone 的初始化代码

 $(".dropzone").dropzone({
        url: "Images/up",
        maxFiles: 1,
        maxFilesize: 10, 
        acceptedFiles: 'image/*',
        autoProcessQueue: false,
        autoDiscover: false,
        params: {csrf_token: $.cookie("csrf_value")},
        init: function () {
            this.on("addedfile", function (file) {
                $('#init_empty_msg').addClass('hidden');
            });
        }

    });

【问题讨论】:

  • csrf令牌是否也正确通过了第二次??
  • 如何确保其刷新与否?!
  • 如果不是页面加载,则不应更改
  • 我不明白,顺便说一句,参数不是每个请求都执行 $.cookie 这意味着即使它改变了也要检索当前值?
  • 是的,但我怀疑cookie中的csrf值是否第二次可用?调试一下看看

标签: jquery ajax codeigniter csrf dropzone.js


【解决方案1】:

您可以在所有 ajax 之前使用 $.ajaxPrefilter() 并将数据选项 csrf 令牌添加到所有 ajax 中。 在此之后,您通常无需在数据数组 csrf 数据中声明即可发出 ajax 请求 和

// for CI 3.0.4
data: {"<?= $this->security->get_csrf_token_name() ?>": "<?= $this->security->get_csrf_hash() ?>"}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-02
    • 1970-01-01
    • 2011-11-12
    • 2012-02-03
    • 2017-05-28
    • 2015-10-06
    • 2012-05-25
    • 2012-07-18
    相关资源
    最近更新 更多