我遇到了jQuery 1.7.1和firefox中的ajax函数的问题。 我正在做一个从CMIS服务器请求json的ajax调用。在chrome中一切正常。让我举个例子:
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中的奇怪之处在于,如果我使用异步:false,一切都像魅力一样。如果我使用async:true,也会执行完成回调,并显示带有“test”消息的警告。但是警报后的功能没有执行。 我google了很多,找不到解决这个问题的方法。
你是我最后的希望;)
谢谢和最诚挚的问候, 西蒙
我也尝试过老式但结果仍然相同 - 如果async为true,则不会在firefox中调用success函数。
$.ajax(url, {
type: requestType,
async: isAsync,
data: parameters,
success: function(result){
doneCb(result);
},
error: function(cause){
failCb(cause);
}
});
答案 0 :(得分:1)
该代码采用alert
并将其返回的内容分配给done的第一个参数。它正在初始化函数时执行,而不是在实际调用done()
方法时执行。
应该看起来像
.done(
function() { alert("test") },
function() { ... }
)