我正在尝试将我的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");
答案 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
方法始终都会被触发。