【问题标题】:How to add a csrf token to a post request in a image upload in CKEDITOR plugin?如何在 CKEDITOR 插件中的图像上传中将 csrf 令牌添加到发布请求中?
【发布时间】:2015-10-07 11:24:45
【问题描述】:

我正在使用增强的图像插件将图像上传到服务器。我的后端是 Django。通过 django-ckeditor 的帮助,我已经在 CKEDITOR 中实现了图像上传的前端和后端部分。

然而 Django-Ckeditor 不处理图片上传中的 csrf 保护。它使用 csrf_exempt 装饰器来免除 csrf 保护。

upload = csrf_exempt(ImageUploadView.as_view())

如何将 csrf 令牌添加到用于图像上传的 post 请求中?我是否必须在处理 csrf 令牌的上传插件中编写自己的表单?

【问题讨论】:

  • 您已在 2 天前在另一个问题中链接到该帖子
  • @AlfonsoML - 是的但我无法将其上传到服务器并通过该方法取回图像的 URL。您尝试过该方法吗?如果是的话,你能和我分享一下吗?
  • 不,我没有测试过,因为我有自己的插件来处理所有文件上传,这只是它提供的功能之一。你应该调试你的代码,找出为什么它不适合你。
  • 我现在不能写出完整的答案,但是看看editor.fileUploadRequestdocs.ckeditor.com/#!/guide/…

标签: javascript django ckeditor image-uploading


【解决方案1】:

简单的方法是在filebrowserImageUploadUrl中添加csrf令牌,见下文(jsp)

$(document).ready(function() {
   var editor = CKEDITOR.replace('content', { skin: 'moonocolor',
      toolbar: 'MyToolbar', 
      filebrowserImageUploadUrl: "<c:url value="/site/upload"/>${_csrf.parameterName}=${_csrf.token}" });
   }
});

【讨论】:

    【解决方案2】:

    我只是将 csrf 令牌连接到我的上传网址:

    filebrowserImageUploadUrl: '/laravel-filemanager/upload?type=Images&_token=' + $('meta[name=csrf-token]').attr("content"),
    

    【讨论】:

      猜你喜欢
      • 2016-09-19
      • 2013-09-13
      • 2018-01-10
      • 2016-07-16
      • 2020-02-04
      • 2015-04-08
      • 2015-09-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多