我是jquery ajax的初学者。当我使用async: false
时,我的下面的ajax代码运行正常,但是由于firefox中的问题我在引用link之后删除了它(我遇到了同样的问题)。现在它不起作用。甚至没有显示任何错误。
这是我的代码:
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
阻止但没有用来捕获错误。
答案 0 :(得分:3)
问题是我在成功回调函数之外进行操作。我使用async: false
时工作正常。这意味着ajax调用将是同步的。当我删除async: false
时,我在成功回调函数之外进行的操作无法正常工作。问题是因为ajax调用的异步行为。当异步调用ajax调用时,它不会像代码原则那样流动,即一步一步地从上到下流动,但它可以随时发生。所以,我无法获得所需的输出。
当我在成功回调中替换代码操作时,我的代码工作正常。 感谢@mccannf在上述评论中指出了问题。 :)