それで、私はここでしばらくキーボードに頭をぶつけていましたが、ついにこの奇妙な動作をその核心に煮詰めることができました。
Chrome では、JQuery.ajax() を使用して JSONP リクエストを行い、サーバーが 404 を返すと、どのコールバックも呼び出されないようです。fail()、always()、done() のいずれにも指定されていないコールバックは呼び出されません。
IE10 では、コールバックは期待どおりに呼び出されます。
簡単な例(このフィドルでも確認できます:
$.ajax("https://www.google.com/notexists",
{
dataType: "jsonp",
}
).always(function ()
{
alert("Call ended."); // This never gets called in Chrome!
});
jQuery 1.9.1 を使用しています。
他の誰かがこの動作を見ていますか? これがjQueryのバグである以外に、それについての他の説明はありますか?