在jquery ajax中既没有成功也没有错误

时间:2013-05-13 07:35:24

标签: javascript jquery

我是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阻止但没有用来捕获错误。

1 个答案:

答案 0 :(得分:3)

问题是我在成功回调函数之外进行操作。我使用async: false时工作正常。这意味着ajax调用将是同步的。当我删除async: false时,我在成功回调函数之外进行的操作无法正常工作。问题是因为ajax调用的异步行为。当异步调用ajax调用时,它不会像代码原则那样流动,即一步一步地从上到下流动,但它可以随时发生。所以,我无法获得所需的输出。

当我在成功回调中替换代码操作时,我的代码工作正常。 感谢@mccannf在上述评论中指出了问题。 :)