更新或扩展$ .ajax jQuery

时间:2012-12-25 05:41:30

标签: jquery

我想更新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,
                        }
                );

2 个答案:

答案 0 :(得分:2)

可以使用$.ajaxSetup()

声明默认选项

更新:您还可以在ajaxSetup中使用默认函数

$.ajaxSetup({
    timeout:20000,
    error: function(jqXHR, textStatus, errorThrown){
        if( textStatus == 'timeout'){
            // Write timeout callback function here...
        }
    }
});

答案 1 :(得分:1)

你可以这样做:

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

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

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

你的意思是那样......