如何扩展JQuery ajaxSetup设置?

时间:2014-03-12 01:26:25

标签: javascript jquery

我想为Settings的{​​{1}}添加一些其他属性。

然后,我会从ajaxSetup的{​​{1}}和BeforeSend回调中访问这些设置。

例如,应该看起来像这样:

OnComplete

然后:

Ajax

我不确定如何访问$.ajaxSetup({ myCustomProperty: 'SomeValue' }); 的内容来扩展 $.ajax({ type : 'POST', url : url, async : false, data : postData, beforeSend : function (x, settings){ alert(settings.myCustomProperty); }, complete : function () { alert(settings.myCustomProperty); } });

2 个答案:

答案 0 :(得分:0)

如果您尝试自定义jQuery $ .ajax()调用,我不会通过$ .ajaxSetup()来实现。 jQuery特别建议首先不要使用$ .ajaxSetup。来自API docs

  

描述:为将来的Ajax请求设置默认值。它的用途是   不推荐。

我建议改为创建自己的内部调用$ .ajax()的方法:

function myAwesomeAjax(settingsObj){
    // do some awesome stuff with your custom properties here
    var myCustomProperty = "jQuery is awesome!";

    return $.ajax(settingsObj);
}

一般来说,jQuery的人都知道他们在做什么,你不应该试着用它来捣乱。

如果你要做的就是创建一个可以在回调中访问的变量,只需给它全局范围。对于奖励积分,将所有内容隐藏在全局“命名空间”中以避免冲突。

答案 1 :(得分:-1)

您可以这样设置ajax的默认参数:

$.ajaxSetup({
    data: {
        myCustomProperty: 'SomeValue'
    }
});