ベンは正しいですが、少し拡大します。
jQuery は、呼び出されたページの HTTP 応答コードに基づいて成功または失敗を判断します。これは、返される応答の内容と同じではないことに注意してください。
例として、PHP スクリプトがhttp://url.com/script.phpにあるとします。
ユーザーがそのサイトにアクセスすると、サーバーから応答が返されます。その応答は、JSON オブジェクト、HTML ページ、または空の応答である可能性があります。これらすべてのケースで、応答コードは 200 になる可能性があります。200 応答コードは、サーバーが要求を理解し、それを受け入れ、何かを送り返したことを意味します。
ここで、ユーザーがhttp://url.com/notascript.phpにアクセスしようとしたとします。
サーバーはそれをどうするかわかりnotascript.php
ません (実際には存在しないと仮定します)。リクエストに失敗し、おそらくレスポンス コード 404 (または 4xx の範囲内の何か) でレスポンスを返します。
実際の URL がわかっている場合、jQuery のエラー ハンドラはどのように呼び出されるのでしょうか。
さて、あなたの AJAX 呼び出しがブログ投稿を読み込もうとしていて、次のような呼び出しをしようとしているとしましょう: http://url.com/post?id=5
. ID が 5 のブログ エントリがないと PHP スクリプトが判断した場合は、おそらく成功応答を返すべきではありません。むしろ、4xx 応答の方が適切です。PHP には、そのための組み込み関数があります。
<?php
http_response_code(404);
?>
これで、応答が失敗として jQuery によって読み取られ、エラー ハンドラーが呼び出されます。
参考文献:
http_response_code() 関数
HTTP 応答コードを定義するRFC2616
休み