jquery ajax .done没有被解雇但是.always被解雇了

时间:2014-11-20 04:54:26

标签: jquery ajax

我正在尝试将我的jquery代码附加到第三方网站,因此我插入一个按钮,在加载页面时触发请求。我遇到的一个问题是.done回调没有被触发,但是.always被触发了。唯一值得一提的是,我尝试使用的页面,在加载后也会发出一些ajax请求。这可能是我遇到这个问题的原因吗?

$("<button>Test</button>").click(function(){
  var url="<https url from the site>";
  $.ajax(url).done(function(data){
    console.log(data);
  });
}).insertBefore("div.top");

2 个答案:

答案 0 :(得分:2)

我能够在Arun的帮助下解决这个问题。

解析响应时出错。因此,在我向请求添加了一个额外的参数{dataType:“json”}之后,触发了.done。现在看起来像是

$.ajax(url,{
    dataType: "json"
}).done(function(data){
    console.log("Success:" + data);
}).fail(function(xhr, status, error){
    console.log("Status: " + status + " Error: " + error);
    console.log(xhr);
});

答案 1 :(得分:0)

只有在您的 ajax 调用成功时才会执行done功能,如果出现问题done从不< / strong>被触发。 正如其名称所示,无论 ajax 请求是否有效,always方法始终都会被触发。