jQuery AJAX 呼び出しからの HTTP ステータス コードを正しく処理する方法に関する多数の投稿を読んでいますが、完全に失敗しています。もしかしてバグがある?これが他の場所で回答されている場合は申し訳ありませんが、これを機能させることができません。
Musicbrainz リリース UUID を使用して、カバー アート アーカイブからアルバム アートワークを読み込もうとしています。彼らのサーバーは、アートがない場合は 404 を返し、JSON を直接返す場合は 200 を返します。より一般的には、JSON にリダイレクトする場合 (最終的な画像情報を含む) は 307 を返します。
PHP/CURL を使用してサーバー側でこれを動作させていますが、ページの読み込みに長い遅延が発生します (サーバーが coverartarchive.org からの応答の待機をブロックするため)。クライアントにアルバムのアートワークを非同期でロードしてもらいたいです。
これが私が持っているものです-エラーコールバックのみが呼び出されることに注意してください。statusCode 関数は呼び出されません。私はこれの多数の異なるバージョンを試しました。どれも機能しません。307 リダイレクトがブラウザによって傍受されるという問題があることを読みましたが、404 コールバックでさえヒットしません。
$('.album_art').each(function() {
var me = $(this);
var uuid = me.data("uuid");
var artistName = me.data("artist");
var trackName = me.data("track");
console.debug("Loading cover art for track "+uuid+ " artist name and track name: " + artistName, trackName);
$.ajax({
type: 'GET',
cache: 'FALSE',
//contentType: "application/json",
url: "http://coverartarchive.org/release/"+uuid,
//data: jsonString,
statusCode: {
200: function () {
console.debug("200 for " + uuid);
},
307: function () {
console.debug("307 for " + uuid);
},
404: function () {
console.debug("404 for " + uuid);
}
}
error: function (XMLHttpRequest, textStatus, errorThrown) {
console.debug("error for " + uuid);
}
});
}); // sorry, indentation is a bit out after copy/paste
いくつかのサンプル アルバム/リリースの Firebug コンソール出力のスニペット:
Loading cover art for track 695ca8ba-16f3-4231-bf03-6ba81d435b72 artist name and track name: Nirvana Smells Like Teen Spirit
GET http://coverartarchive.org/release/695ca8ba-16f3-4231-bf03-6ba81d435b72
307 TEMPORARY REDIRECT 239ms
Loading cover art for track 49364063-bcb6-4d9f-b2bc-940f76495db9 artist name and track name: INXS Kiss the Dirt (Falling Down the Mountain)
GET http://coverartarchive.org/release/49364063-bcb6-4d9f-b2bc-940f76495db9
404 NOT FOUND 249ms
Loading cover art for track b09e7fcf-0383-4e7c-acb0-d5ab437d6713 artist name and track name: Midnight Oil Blot
GET http://coverartarchive.org/release/b09e7fcf-0383-4e7c-acb0-d5ab437d6713
404 NOT FOUND 285ms
Loading cover art for track 90ab8c15-08c8-424e-9d18-62f2f35dae7a artist name and track name: Macklemore & Ryan Lewis feat. Wanz Thrift Shop
GET http://coverartarchive.org/release/90ab8c15-08c8-424e-9d18-62f2f35dae7a
307 TEMPORARY REDIRECT 285ms
Loading cover art for track 433ffa89-1e6a-434a-9bfe-6690f3b6e32a artist name and track name: Them Crooked Vultures Mind Chaser, No Eraser
GET http://coverartarchive.org/release/433ffa89-1e6a-434a-9bfe-6690f3b6e32a
404 NOT FOUND 286ms
Loading cover art for track bc091f8f-17cc-4ad3-8ca3-a7d080c61e1d artist name and track name: Nine Inch Nails The Good Soldier
GET http://coverartarchive.org/release/bc091f8f-17cc-4ad3-8ca3-a7d080c61e1d
404 NOT FOUND 296ms
error for 7b382603-3fda-47d0-8b86-8c661ad616ca
error for 909fbadc-46a5-4bd6-864b-e36d9b47a98e
error for 39ec579c-7a31-4edd-9fd5-d1f48731bf92
GET http://archive.org/download/mbid-dfeacac3-16f0-4ef7-94de-e25679b050c2/index.json
302 Moved Temporarily 1.39s
error for 49364063-bcb6-4d9f-b2bc-940f76495db9
error for b09e7fcf-0383-4e7c-acb0-d5ab437d6713
error for 433ffa89-1e6a-434a-9bfe-6690f3b6e32a
GET http://archive.org/download/mbid-b776a4df-e8a4-4f23-838a-600b5db75ad3/index.json
302 Moved Temporarily 1.45s
GET http://archive.org/download/mbid-69acc6e3-7fe6-4c8c-991e-860677dcf0db/index.json
302 Moved Temporarily 1.63s
error for bc091f8f-17cc-4ad3-8ca3-a7d080c61e1d
error for 4b5657bb-6209-493a-9e64-2bae4c3d4f1a
特に、これはまったく同じ問題のように見えます: jquery ajax statusCode: 502 function never called