0

我有一个非常奇怪的问题。使用 jQuery.ajax(...) 发布 JSON 数据突然开始将内容类型(“application/json”或您可能指定的任何其他内容类型)放入名为“Content-CtrlType”的请求标头字段中,而不是“Content-类型”。“Content-Type”也存在,但包含“text/plain”:

奇怪的 POST 请求标头的屏幕截图

我使用 jQuery 1.7.2。该问题存在于 IE9、Firefox 12 和 Chrome 上。没有测试过其他浏览器,因为我认为它与浏览器无关。

这是我生成请求的 JavaScript 代码:

...
var ajaxOptions = {
    url: url,
    type: 'POST',
    dataType: 'json',
    data: JSON.stringify(params),
    contentType: 'application/json; charset=utf-8',
    cache: false,
    error: function (jqXHR, textStatus, errorThrown) { .... },
    success: function(data, textStatus, jqXHR) { .... },
    converters: {
         "text json": function(data) { .... }
    }
};

$.ajax(ajaxOptions);

...

“params”是我的 JavaScript 对象,用于保存要传输的数据。

有人知道出了什么问题吗?

4

1 回答 1

0

好吧,在 Jonathan 确认我的代码没有问题之后,我开始了一个详细的调试会话并深入研究 jQuery 代码。在这里我发现了问题。可能由于一些重构,请求头字段“Content-Type”的设置被重命名为“Content-CtrlType”。如果它被重命名为其他东西,它会更加明显。@*$&§...关于琐碎的重构...

打扰了!

于 2012-05-31T08:04:28.060 回答