$.getJSON( "http://yoolk.dev:3012/categories?callback=?", function(data) {
console.log(data)
}
);
我有上面的代码以获取json数据,但回调函数似乎无法正常工作。有人可以帮忙吗?感谢
答案 0 :(得分:1)
如果请求失败,则不会调用您的回调。您可以使用类似下面的示例来检测故障。如果jsonp
失败,jquery将不会调用任何错误处理程序...因此,可以实现一个检查结果的计时器......
这里,task.run
执行ajax请求,checkStatus
函数检查结果。
var task = {
complete: 0,
timeout: 5000,
run: function() {
$.ajax({
type: 'get',
url: 'http://www.yahoo.com',
dataType: 'jsonp',
timeout: this.timeout,
complete: function(req, status) {
this.complete = 1
if (status == "success") {
alert('Success');
} else {
alert('Error: ' + status)
}
}
})
var o = this
setTimeout(function() {o.checkStatus()}, this.timeout + 1000)
},
checkStatus: function() {
if (!this.complete) {
alert('Error: Request did not complete')
}
}
}
task.run()