jQuery JSON ajax请求上的请求正文为空
服务器:在Heroku上运行的Django 1.4。所有请求都是HTTPS 我的ajax调用如下所示:jQuery JSON ajax请求上的请求正文为空,jquery,ajax,json,django,heroku,Jquery,Ajax,Json,Django,Heroku,服务器:在Heroku上运行的Django 1.4。所有请求都是HTTPS 我的ajax调用如下所示: var data = { username: form.find('input[name="username"]').val(), email: form.find('input[name="email"]').val() }; $.ajax({ url: '/register', type: 'POST', data: JSON.stringify(data), co
var data = {
username: form.find('input[name="username"]').val(),
email: form.find('input[name="email"]').val()
};
$.ajax({
url: '/register',
type: 'POST',
data: JSON.stringify(data),
contentType: 'application/json',
dataType: 'text',
headers: {
'X-CSRFToken': $.cookie('csrftoken')
}
});
有时,在服务器上解析请求正文会失败,因为request.body
完全为空。这是相当罕见的,但由于我在很多页面上使用了这个习惯用法,我每周都会看到几次。大约有2-5%的请求
CSRF令牌头与其他令牌头一起存在,因此似乎只缺少主体本身。在最近的一个请求中,我注意到还有一个CONTENT\u LENGTH 2
头,它太短,无法包含真正的请求数据。我不知道这是怎么加上去的
我希望您能帮我调试一下。我找不到任何方法让JSON.stringify
调用返回空字符串。这合理吗?如果是这样,那么必须是请求主体在运行中被剥离,或者是我的Django应用程序中的某个东西正在这样做
任何关于如何复制的帮助调试或想法都是非常受欢迎的。我唯一看到类似行为的时候是当我请求数据时,在检索端我将数据解释为错误的类型,例如,在我的情况下,jQuery需要JSON,但发送了XML,然后我得到了空数据。然后,我必须设置jQuery以将数据显式解释为xml。这对您来说可能是这样吗?第二次测试后,您的javascript出现了错误(缺少
)
,谢谢。修正了。我相信$.ajax调用中的dataType:'text'选项会阻止jQuery进行任何解释,所以这不应该适用。Ok。很高兴知道。谢谢