【问题标题】:jquery ajax file upload with Django使用 Django 上传 jquery ajax 文件
【发布时间】:2012-04-25 18:07:15
【问题描述】:

我正在使用 jquery ajaxfileupload 插件http://www.phpletter.com/Our-Projects/AjaxFileUpload/ 在服务器端使用 Django 上传图像。我还完成了我在这里看到的 ajax 设置Django CSRF check failing with an Ajax POST request 但我仍然收到 403 Forbidden: csrf verification failed.

这是客户端脚本: http://jsfiddle.net/rkumarnirmal/FSDPH/

这是 Django 代码:

def backgroundview(request):
    if request.is_ajax():
        b = request.POST.get('fileToUpload')        
        try:
            g = BackgroundModel.objects.get(user=request.user)
        except CoverModel.DoesNotExist:
            bm = BackgroundModel(background=b)
            bm.user = request.user
            bm.save()
        else:
            g.background = b
            g.save()
        return HttpResponse("")  

谁能帮帮我?

谢谢!

【问题讨论】:

  • 您是否将 {% csrf_token %} 添加到呈现的表单中?
  • 我已经尝试添加标签,但仍然得到相同的 403 禁止错误
  • 你可以使用 alert(getCookie('csrftoken')) 来检查你是否设置了它吗?

标签: jquery python django jquery-ui


【解决方案1】:

在视图方法的顶部附加注解@csrf_protect!

【讨论】:

    【解决方案2】:

    确保在您的视图中使用RequestContext。

    见https://docs.djangoproject.com/en/dev/ref/contrib/csrf/#how-to-use-it

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-26
    • 2014-01-16
    • 2011-11-01
    • 2012-12-05
    • 2013-08-28
    • 1970-01-01
    • 2014-11-01
    相关资源
    最近更新 更多