javascriptにファイルが存在するかどうかを確認する方法は?
質問
jqueryライブラリを使用して、htmlファイルのコンテンツをロードしています。このようなもの:
$("#Main")。load(" login.html")
ファイル(この場合は 'login.html')が存在しない場合、ユーザーをエラーページにリダイレクトできるように検出したいと思います。ロードするファイルが存在するかどうかを検出する方法はありますか?
解決
ajaxCompleteイベントを使用できますが、要求のステータスを照会できるxhrオブジェクトにアクセスできます。たとえば、404のステータスはファイルが存在しないことを意味します。
ドキュメントの詳細 http://docs.jquery.com/Ajax/ajaxComplete#callback
ここでテスト http://pastebin.me/48f32a74927bb
e.g
$("#someDivId").ajaxComplete(function(request, settings){
if (settings.status===404){
//redirect here
}
});
他のヒント
@PConroyのソリューションは機能しますが、失敗したすべてのAjaxリクエストに対して同じことを行います。
リクエストごとにこれが必要な場合-つまり、最初のリクエストが失敗するとXページに行き、2番目のリクエストが失敗するとYに行く場合、$。ajax関数のエラーハンドルを使用してこれを行う必要があります。
(編集するには: http://jsbin.com/iwume/edit )
所属していません StackOverflow