0

jQueryの$.ajaxメソッドを更新して、デフォルトのタイムアウトが20秒になるようにし、タイムアウト時に独自の関数を呼び出し、ネットワークエラー関数も作成します。

これは可能ですか?

すべての$.ajaxリクエストにタイムアウトを追加したくないので、これを実行したいと思います。

何かあれば質問してください

このように、すべての関数に対して、タイムアウトを追加する必要があります。

$.ajax(
                        {
                            url: "getDuctions.php",
                            type: "POST",
                            data: {dept_cd: dept, filter: "payroll_struct_empl_map", primary: "empl_cd"},
                            beforeSend: function() {
                                $("#duct").html("<option value=''>Loading</option>");
                            },
                            success: function(data) {
                                $("#duct").html(data);
                            },timeout:20000,
                        }
                );
4

2 に答える 2

2

デフォルトのオプションは、 $。ajaxSetup()を使用して宣言できます。

更新:ajaxSetupでデフォルトの機能を使用することもできます

$.ajaxSetup({
    timeout:20000,
    error: function(jqXHR, textStatus, errorThrown){
        if( textStatus == 'timeout'){
            // Write timeout callback function here...
        }
    }
});
于 2012-12-25T05:45:04.853 に答える
1

あなたができる:

$.ajax({
 complete: callbackFunction, 
 url: 'some_url', 
 type: "POST",
 ......
 timeout: 20000, 
 error: errorCallback
});

また

$.ajaxSetup({timeout: 20000, error: errorCallback});

error 関数は、404 エラーなどで失敗した場合、またはタイムアウトになった場合に呼び出されます。

そんなこと言ってたのかな..

于 2012-12-25T05:52:13.120 に答える