Javascript jQuery-ajax-done回调在firefox中的行为很奇怪
我对jquery1.7.1和firefox中的ajax函数有一个问题。 我正在做一个ajax调用,它从CMIS服务器请求json。在chrome中,一切正常。让我举个例子:Javascript jQuery-ajax-done回调在firefox中的行为很奇怪,javascript,jquery,ajax,asynchronous,Javascript,Jquery,Ajax,Asynchronous,我对jquery1.7.1和firefox中的ajax函数有一个问题。 我正在做一个ajax调用,它从CMIS服务器请求json。在chrome中,一切正常。让我举个例子: function ajaxCall(url, requestType, isAsync, parameters, doneCb, failCb) { $.ajax(url, { type: requestType, async: isAsync, data: param
function ajaxCall(url, requestType, isAsync, parameters, doneCb, failCb) {
$.ajax(url, {
type: requestType,
async: isAsync,
data: parameters
}).done(
alert("test"),
// the following function gets not executed in firefox with async: true
function (result) {
doneCb(result);
}).fail(function (cause) {
failCb(cause);
});
}
firefox中的奇怪之处在于,如果我使用async:false,那么一切都像一个符咒。在我使用async:true的情况下,也会执行done回调,并弹出带有消息“test”的警报。但警报后的函数不会执行。
我在谷歌上搜索了很多,找不到解决这个问题的方法
你是我最后的希望;)
谢谢并致以最良好的祝愿,
西蒙
我也尝试了老式的方法,但结果仍然是一样的——如果async为true,则不会在firefox中调用success函数
$.ajax(url, {
type: requestType,
async: isAsync,
data: parameters,
success: function(result){
doneCb(result);
},
error: function(cause){
failCb(cause);
}
});
该代码获取
警报
,并将其返回的内容分配给done的第一个参数。它在初始化函数时执行,而不是在实际调用done()
方法时执行
应该是这样的
.done(
function() { alert("test") },
function() { ... }
)
谢谢你的回复。在我的原始代码中,我没有警报。我只是把它放在那里看看发生了什么。如果我在没有警报的情况下执行代码,那么函数也不会被调用:(删除了我的答案。刚刚注意到你在使用Jquery 1.7。这个建议是针对Jquery 1.8+。对不起