2012-03-21 28 views
0

我使用这个jQuery的Ajax请求,我配置了我的需求:传递给jQuery函数相同的选项遍地

jQuery.ajax({ 
    url: "apiBridge.php?url=" + encodeURIComponent(url), 
    headers: { 
     "Some Weird Header": "123" 
    }, 
    success: function(data){ 

    }, 
    complete: function(){ 
     doAlotOfStuff(); 
     andMore(); 
    } 
}); 

真正的代码是相当漫长的,我认为这是愚蠢的复制/每次我需要在我的样式中创建一个Ajax请求时,粘贴整个事物。

我想要做的是定义这个函数一次,所以我能够重新使用它。我需要改变的每个功能的实例是url成功回调。

这样做的正确方法是什么?

回答

2

定义了一组标准选项:

var ajaxOpts = { 
    headers:{}, 
    url:"someUrl", 
    complete:function(){//whatever;}, 
    otheroptions:"asneeded" 
}; 

当您每次Ajax调用,扩展本地选项与标准选项对象:

$.ajax($.extend({url:"custom", success:doAThing}, ajaxOpts)); 

...或@ gdoron说,使用ajaxSetup。我更喜欢$ .extend,因为这样我就不会在页面上打开其他$ .ajax调用,我可能无法控制。

1

您可以使用ajaxSetup函数。

jQuery.ajaxSetup(选项)

描述:未来的Ajax请求的默认值。