JQuery 1.7 中的 JSONP 错误



注意:我已经检查了其他答案,包括这个问题:jQuery 1.5 之前的 JSONP 错误问题,现已解决。我正在使用 JQuery 1.7,我相信它不会受到此问题的影响。

从 JQuery 1.5 开始,JSONP 可以实现正确的错误函数(参见"jqXHR 对象")。但是,错误函数似乎没有触发。

$.getJSON(url, function(response) { 
    console.log(response)   
}).error( function() { console.log('Error occurred.') } )   

查看 Chrome Dev Tools,JSONP 请求会生成以下错误:

GET https://twitter.com/status/user_timeline/somepretendusername.json?count=2&callback=jQuery171005595548846758902_1334772179012&_=1334772179132 400 (Bad Request)

但是,.error() 回调似乎根本无法运行。我需要什么才能使用 JSONP 进行正确的错误处理?

错误函数仅在请求出错时触发。正在发出请求,但如果用户名不存在,Twitter 会返回 400。我使用假用户名尝试了它,并得到了与您相同的响应,但后来我使用了我的用户名,它就像冠军一样工作。

[编辑] 我看到你只是在问如何处理 JSONP 的错误。无论出于何种原因,jQuery似乎对此没有很好的错误处理。我确实找到了一个插件,它承诺为 JSONP 提供实际的错误处理。在这里查看。

[编辑2] 看看,它有效!

$(document).ready(function() {
    var url = 'https://twitter.com/status/user_timeline/thisisnotarealtwitterhandle.json?count=2&callback=?';
    var jqxhr = $.jsonp({
        url: url,
        success: function(response) {
            console.log(response)
        }
    }).fail(function() { console.log('error'); });
});

相关内容

  • 没有找到相关文章