2

如何为不同的 AJAX 请求设置不同的设置 (jQuery.ajaxSetup())?

我想做的是“链接”每个 AJAX 调用做不同的 ajaxSetup()。

4

4 回答 4

6

重点$.ajaxSetup()是通过 jQuery 在全球范围内为所有 ajax 调用创建默认设置。如果要覆盖设置,只需在特定的 ajax 调用中指定它们。

例如,在您的代码早期的某个地方,定义您的$.ajaxSetup()

$.ajaxSetup({
    type: 'POST'
    , cache: false
    , contentType: 'application/json'
    , dataType: 'json'
    , error: function (a, b, c) {
        //default error handling
        console.log(a, b, c);       
    }
});   

然后,当您想使用 a 覆盖时GET,请执行以下操作:

$.ajax(myUrl, {
    type: 'GET'
    , data: myData
}); 
于 2012-05-23T20:32:56.543 回答
2

也许您只是想使用$.extend将您的输入合并到您设置的一些不同的默认值中。例如:

var settings1 = {
    type:"GET",
    url:"something.php"
};

var settings2 = {
    type:"POST",
    url: "somethingelse.php"
}

$.ajax($.extend(true, settings1, {
    data: {key: val}
}));

$.ajax($.extend(true, settings2, {
    data: {key: val}
}));
于 2012-05-23T20:39:18.370 回答
1

您可以创建单独的对象并使用这些对象来创建您传入的选项$.ajax

var ajaxSetup1 = {
    type: "POST",
    dataType: "html"
}
$.ajax( $.extend( ajaxSetup1, {"url","mypage.php"} ) );

这当然可以包装在一个私有方法中以供重用。

于 2012-05-23T20:35:27.320 回答
0

您是否阅读过 jquery.com 上有关 .ajax() 的文档?令人惊讶的是它需要多少不同的设置(作为参数)。
您很有可能可以在 .ajax() 中执行您想要的操作,而无需调用 .ajaxSetup()。

于 2012-05-23T20:33:19.357 回答