jQuery JSON 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

服务器:在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),
  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。很高兴知道。谢谢