【问题标题】:CSRF verification failure when trying to upload an image from django-ckeditor on staging server尝试从登台服务器上的 django-ckeditor 上传图像时 CSRF 验证失败
【发布时间】:2014-02-20 09:26:12
【问题描述】:

Django-ckeditor 可以选择直接从编辑器插入和上传图片。这适用于本地/开发机器,但在远程服务器上 Django 抛出 403 错误,CSRF 验证失败。这发生在管理后端,我没有其他类似的问题。有谁知道我做错了什么?任何帮助将不胜感激。谢谢

【问题讨论】:

    标签: django django-admin csrf http-status-code-403 django-ckeditor


    【解决方案1】:

    我遇到了这个问题,因为 url(r'^sys/cke/', include('ckeditor.urls')) 包含在 urlpatterns after 限制较少的模式(即url(r'^', include('cms.urls')))中。

    因此,当使用反向 url 解析器为 ckeditor_upload 构建绝对 url 时,它可以正常工作,但是当 url 解析器要为请求找到正确的视图时,请求不会使用 @csrf_exempt 进入 ckeditor 的视图,而是查看与第一个匹配的模式。混淆是因为 403 Forbidden 错误消息没有正在执行的视图的痕迹。

    【讨论】:

      【解决方案2】:

      问题仍未解决。

      https://github.com/shaunsephton/django-ckeditor/issues/84

      最好免csrf验证。

      【讨论】:

      • 我刚刚在ckeditor中查看了views.py,并且csrf_exempt装饰器已经应用于upload()视图。我误会你的意思了吗?
      • 检查您的设置中间件并尝试评论您的 csrf 中间件。
      【解决方案3】:

      我不知道你是否已经解决了,但我遇到了同样的问题。该问题与 django 版本有关。所以你需要把它添加到你的urls.py:

      if django.VERSION >= (1, 8):
      urlpatterns = [
          url(r'^', include('blog.urls', namespace="blog")),
          url(r'^admin/', include(admin.site.urls)),
          url(r'^ckeditor/', include('libs.ckeditor_uploader.urls')),
      ]
      else:
      from django.conf.urls import patterns
      
      admin.autodiscover()
      urlpatterns = patterns(
          '',
          url(r'^', include('blog.urls', namespace="blog")),
          url(r'^admin/', include(admin.site.urls)),
          url(r'^ckeditor/', include('libs.ckeditor_uploader.urls')),
      )
      

      【讨论】:

        猜你喜欢
        • 2012-12-12
        • 2011-09-17
        • 2020-03-05
        • 2014-03-31
        • 2023-01-16
        • 2012-09-08
        • 2015-06-02
        • 1970-01-01
        相关资源
        最近更新 更多