1

jQuery 1.8.3 で文書化されていない重大な変更を見つけたようです。

ページを jQuery 1.7 から 1.8.3 にアップグレードしているときに、「HEAD」タイプの ajax 呼び出しの 1 つが機能しなくなりました。

デバッグ時に成功コールバックが発生しますが、Google CDN を使用して jQuery 1.8.3 でページを実行すると、パラメーター「xhr」が null になります。

1.7 に戻すと、xhr オブジェクトは完全に機能し、null ではなくなります。

1.8.* の破壊的な変更について Google と jQuery のサイトを精査しましたが、適切なものは何も見つかりません。使用する必要がある別のライブラリには最新の 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 であり、探している情報が常に存在することを追加する必要があります。問題は、1.8.3 または 1.9.0 を優先して jQuery 1.7.0 を使用しない場合、xhr オブジェクトが null になることです。

4

1 に答える 1

2

jQuery はsuccesscallbackの形式を変更したようです。1.8 以降では次のようになります。

タイプ: 関数(オブジェクトデータ、文字列 textStatus、jqXHR jqXHR )

が最初jqXHRの引数ではなく 3 番目の引数になったため、successハンドラを次のように変更します。

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