1

我似乎在 jQuery 1.8.3 中发现了一个未记录的重大更改。

在将页面从 jQuery 1.7 升级到 1.8.3 时,我们的“HEAD”类型的 ajax 调用之一停止工作。

在调试成功回调时,当我使用 google CDN 在 jQuery 1.8.3 中运行页面时,参数“xhr”为空。

如果我切换回 1.7,xhr 对象是完全可操作的,而不是 null。

我已经搜索了 google 和 jQuery 站点以了解 1.8.* 中的重大更改,但找不到任何相关信息。我需要升级它,因为我需要使用的另一个库需要最新的 jQuery,所以我现在处于困境和困境之间。

代码如下:

$.ajax({
    type: "HEAD",
    async: false,
    cache: false,
    url: pth + b,
    error: function (xhr) {

    // always succeeds

    },
    success: function (xhr) {
        // in jQuery 1.7.0 ONLY xhr is a non-null object - 1.8.3/1.9.0 receive a null object as a parameter
        c = xhr.getResponseHeader('x-amz-meta-mix');
        if (c == null) c = b;

    }
});

谢谢!

PS-我应该补充一点,在 Fiddler 中,响应始终为 200,并且我正在寻找的信息始终存在。问题是如果我不使用 jQuery 1.7.0 来支持 1.8.3 或 1.9.0,则 xhr 对象为空

4

1 回答 1

2

jQuery 似乎改变了success回调的格式。在 1.8 及更高版本中,它是:

类型:函数(对象数据,字符串 textStatus,jqXHR jqXHR)

现在jqXHR是第三个参数,而不是第一个参数,因此将您的success处理程序更改为:

success: function (data, status, xhr) {
    ...
于 2013-01-25T15:11:01.627 回答