既没有成功也没有错误工作在jQuery中ajax
问题描述:
我是初学jQuery ajax。当我使用async: false
时,我的下面的ajax代码工作正常,但由于Firefox中的问题,我在提及此link(我面临同样的问题)后将其删除。现在它不工作。甚至没有显示任何错误。既没有成功也没有错误工作在jQuery中ajax
这是我的代码:
try {
_ajaxCall = $.ajax({
url: URL,
type: "POST",
data: "drqlFragment=" + text,
//async : false,
cache: false,
headers: {
accept: "application/json",
contentType: "application/x-www-form-urlencoded"
},
contentType: "application/x-www-form-urlencoded",
//processData : true,
success: function (data, textStatus, jqXHR) {
var resData = data.suggestions;
for (var i = 0; i < resData.length; i++) {
sugData.push(resData[i].keyword);
}
},
error: function (response) {
//Error here
alert('hello');
}
});
} catch (e) {
alert(e);
}
上面的代码既不执行success
也不error
。我甚至试图通过保持try catch
阻止但不使用来发现错误。
答
问题是我在做成功回调函数之外的操作。当我使用async: false
时它工作正常。这意味着ajax调用将是同步的。当我删除async: false
时,我在成功回调函数之外执行的操作不起作用。问题是由于ajax调用的异步行为。当异步调用ajax调用时,它不会像代码原型那样一步一步地从上到下流动,但它可以随时发生。所以,我无法获得所需的输出。
当我在成功回调中替换代码操作时,我的代码工作正常。 感谢@mccannf指出了上述评论中的问题。 :)。
你怎么知道它没有执行'success'回调?仅供参考,'async:true'是默认设置,所以我怀疑删除它会导致任何问题(或更改行为)。 – 2013-05-13 07:38:44
你的服务器返回什么数据?尝试在成功回调中记录控制台中的某些内容,如console.log('success');控制台中出现错误 – palerdot 2013-05-13 07:39:15
? – 2013-05-13 07:39:28