【问题标题】:Django csrf token not sent with ajax dataDjango csrf 令牌未与 ajax 数据一起发送
【发布时间】:2012-10-11 06:24:39
【问题描述】:

我正在尝试通过 jQuery AJAX 将一些数据发布到 Django (1.4) 视图。我以前做过,但这次有些不对劲。如Django Docs 中所述,我已完成我的 AJAX 设置以包含 CSFR 令牌。

jQuery 大致如下:

$.ajax({
        url:'/login/',
        type:'POST',
        contentType:'application/json; charset=UTF-8;',
        dataType:'json',
        data: JSON.stringify({
            username:$('#this').val(),
            password:$('#that').val()
        })

但是,当我发送数据时,当我在视图中包含该行时:

 print request.raw_post_data

它将打印两次。第一次使用 QueryDict {u'this':u'these', u'that':u'those'} 发布数据,第二次使用 csrfmiddleware 令牌。

为什么要打印两次?它们不应该在同一个 QueryDic 中吗?

【问题讨论】:

  • 我也收到此错误"Key this' not found in <QueryDict: {u'csrfmiddlewaretoken': [u'yadjaklfjlajd]}>"

标签: jquery ajax django json


【解决方案1】:

因为我没有收录

e.preventDefault()

表单发送了两次。一个 QueryDict 是有效的,但视图函数没有处理 b/c 默认提交数据只有 csrftoken。

二手

simplejson.loads(request.raw_post_data)

获取我的数据。

【讨论】:

    猜你喜欢
    • 2018-09-07
    • 1970-01-01
    • 2018-06-09
    • 2016-02-11
    • 2019-03-15
    • 2019-01-13
    • 2018-05-10
    • 2016-06-22
    • 2016-08-03
    相关资源
    最近更新 更多