jQuery JSON ajax 请求上的空请求正文

2024-03-23

服务器:在 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_LENGTH 2标头也是如此,它太短而无法包含真正的请求数据。我想知道在哪里添加的。

我希望得到一些帮助来调试这个。我看不到任何方法JSON.stringify调用返回空字符串。这合理吗?如果是这样,那么请求正文要么在运行中被剥离,要么我的 Django 应用程序中的某些内容正在执行此操作。

任何有关如何重现此问题的帮助调试或想法都将受到欢迎。


我唯一一次看到类似的行为是当我请求数据并且在检索端我将数据解释为错误的类型时,例如。就我而言,jQuery 需要 JSON,但发送了 XML,然后我得到空数据。然后我必须设置 jQuery 将数据显式解释为 xml。你可能也是这样吗?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jQuery JSON ajax 请求上的空请求正文 的相关文章

随机推荐