既没有成功也没有错误工作在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阻止但不使用来发现错误。

+0

你怎么知道它没有执行'success'回调?仅供参考,'async:true'是默认设置,所以我怀疑删除它会导致任何问题(或更改行为)。 – 2013-05-13 07:38:44

+1

你的服务器返回什么数据?尝试在成功回调中记录控制台中的某些内容,如console.log('success');控制台中出现错误 – palerdot 2013-05-13 07:39:15

+0

? – 2013-05-13 07:39:28

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

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