[英]will disabling javascript in browser affect ajax calls and js functions
[英]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.