繁体   English   中英

全局$ .ajaxSetup()调用不影响单独函数中的$ .ajax()调用吗?

[英]Global $.ajaxSetup() call doesn't affect $.ajax() calls in separate functions?

有没有办法使$ .ajaxSetup()的范围扩展到函数体? 我无法获得$ .ajaxSetup()来影响函数中的$ .ajax()调用。 这是一个例子:

使用以下代码,由函数foo()发送的ajax请求不包括ajaxSetup中指定的testHeader:

$.ajaxSetup({
    headers: {
        testHeader: testValue
    }
});
function foo(theData) {
    $.ajax({
        url: testUrl,
        data: theData,
        type: 'POST',
        contentType: 'application/json',
        dataType: 'json'
    });
}

但是,使用以下代码,testHeader确实包含在foo()发送的ajax请求中。

function foo(theData) {
    $.ajaxSetup({
        headers: {
            testHeader: testValue
        }
    });
    $.ajax({
        url: testUrl,
        data: theData,
        type: 'POST',
        contentType: 'application/json',
        dataType: 'json'
    });
}

我以为ajaxSetup()应该是全局的,其范围应该扩展到函数体。 我想念什么? 谢谢。

“全球”可能用词不当。

$ .ajaxSetup将仅影响当前的jQuery对象。 如果您在另一个页面中加载jQuery,它将不会受到影响。

好吧,我认为问题在于$ .ajaxSetup()是函数调用,而不是变量。 因此,在调用foo()时,尚未有$ .ajaxSetup()调用。 这是我的工作方式:将$ .ajaxSetup()放入$(function(){})调用中:

$(function () {
    $.ajaxSetup({
        headers: {
            testHeader: testValue
        }
    });
});

然后,foo()中的ajax请求将根据需要包含testHeader。 不知道这是否是最好的解决方案,但对我有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM