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});

错误函数在失败(例如 404 错误)或超时时被调用。

有没有这样的意思。。

于 2012-12-25T05:52:13.120 回答