1

存在しないリソース (Web サーバーと同じホスト上) をロードしようとするとどうなるかをテストするために、次のコードをセットアップしました。

var wrongURL = "http://foo/bar.json"; // non-existent resource
$.ajax({
    url: wrongURL,
    dataType: 'json',
    success: function(jsonResponse, textStatus, jqXHR) {
        $.('#divOfInterest').html("you should never see this");
    },
    error: function(jqXHR, textStatus, errorThrown) {
        $.('#divOfInterest').html("sorry, could not find URL");
    }
});
// remainder of code...

div がメッセージsorry, could not find URLを表示する代わりに、コンソール エラーが発生します。

GET http://foo/bar.json 404 (Not Found) - bar.json

error呼び出し内および$.ajax()ブロックの後にあるもの (つまり// remainder of code) は実行されません。

私のブラウザ (Safari 5.1.5) が 404 エラーで動かなくなり、機能を早期に終了しているようです。

エラーを適切に処理し、残りのコードを実行するにはどうすればよいですか?

4

2 に答える 2

2

私の理解では、そのエラー関数を実行するには、サーバーが実際にエラーステータスを返す必要があります。

たとえば、Soundcloud に存在しないユーザーの JSON オブジェクトをリクエストすると、サーバーから 404 エラーが返されます。

ただし、完全な URI を誤って入力すると、リソースはまったく返されず、ステータス コードも返されません。

于 2012-04-06T22:09:33.210 に答える
1

:D$.('#divOfInterest')に置き換えるだけです$('#divOfInterest')

デモ: http://jsfiddle.net/9Ua8J/

于 2012-04-06T22:08:16.973 に答える