我正试图通过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中吗?
答案 0 :(得分:0)
因为我没有包括
e.preventDefault()
表格发了两次。一个QueryDict有效但视图函数没有处理b / c默认提交数据只有csrftoken。
使用
simplejson.loads(request.raw_post_data)
获取我的数据。