jQuery getJSON问题

时间:2010-01-19 07:50:14

标签: jquery

$.getJSON( "http://yoolk.dev:3012/categories?callback=?", function(data) {
    console.log(data)
 }
);

我有上面的代码以获取json数据,但回调函数似乎无法正常工作。有人可以帮忙吗?感谢

1 个答案:

答案 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()