0

jQueryとを使用する場合Ajax、URL 全体を ajax に渡します。それが (どういうわけか) 存在しなかった場合、ページ自体からページにリダイレクトするにはどうすればurl:よいでしょうか? ゴースルーとファイル。URLpage not foundajaxurl.htaccess

$(document).ready(function() {
    $('.link').click(function () {
    var parentTag = 'check=checked';
    if(parentTag) {
        // ajax call
        $.ajax({
            type:"GET",
            url:"/mylink/buyers/1/0/0", //If this failed, how do I redirect to something else from here?
            data:parentTag,
        dataType: 'json',
            beforeSend:function(callBack){
                console.log('checked');
            },
            success: function(callBack){
                console.log('Success');
            },
            error: function(callBack){
                console.log('Failed');
            },
        });
    }
    return false;
    });
});    
4

2 に答える 2

2

404 またはその他の必要なHTTP ステータスのstatusCodeハンドラを追加するだけです。

一般的なエラー コールバックを追加することもできますが、ステータス コード メソッドを使用する利点は、サーバーからの実際の 404 (ページが見つからないエラー) と他の種類の接続の問題を区別できることです。

$.ajax({
  /* ... */
 statusCode: {
    404: function() {
         // server says: page not found; let's redirect to 404 page
         window.location.href = "http://example.com/my/404/page";
    }
  },
  error: function() {
      // something else went wrong
      alert('An unknown error occurred!');
  }
});
于 2013-09-22T13:41:35.180 に答える
2

window.locationエラーコールバックの中に入れるだけです:

$(document).ready(function() {
    $('.link').click(function () {
    var parentTag = 'check=checked';
    if(parentTag) {
        // ajax call
        $.ajax({
            type:"GET",
            url:"/mylink/buyers/1/0/0", //If this failed, how do I redirect to something else from here?
            data:parentTag,
        dataType: 'json',
            beforeSend:function(callBack){
                console.log('checked');
            },
            success: function(callBack){
                console.log('Success');
            },
            error: function(callBack){
                console.log('Failed');
                window.location = "http://www.example.com";
            },
        });
    }
    return false;
    });
});
于 2013-09-22T13:42:13.090 に答える