Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery1.7中的JSONP错误_Javascript_Jquery_Cross Domain_Jsonp - Fatal编程技术网

Javascript jQuery1.7中的JSONP错误

Javascript jQuery1.7中的JSONP错误,javascript,jquery,cross-domain,jsonp,Javascript,Jquery,Cross Domain,Jsonp,注意:我检查了其他答案,包括。我使用的是jQuery1.7,我相信它不会受到这个问题的影响 截至(请参阅“jqXHR对象”)。但是,错误函数似乎没有启动 $.getJSON(url, function(response) { console.log(response) }).error( function() { console.log('Error occurred.') } ) 查看Chrome开发工具,JSONP请求生成以下错误: GET https://twitt

注意:我检查了其他答案,包括。我使用的是jQuery1.7,我相信它不会受到这个问题的影响

截至(请参阅“jqXHR对象”)。但是,错误函数似乎没有启动

$.getJSON(url, function(response) { 
    console.log(response)   
}).error( function() { console.log('Error occurred.') } )   
查看Chrome开发工具,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提供实际的错误处理。看看吧

[edit2]看看,它能用

$(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'); });
});

使用
.fail()
回调是否会得到相同的结果?@KevinB谢谢。唉。fail()似乎也不起作用。谢谢,但我使用的是真正的用户名。我的问题是如何正确处理错误,而不是如何避免400错误。@Naller我想真正的问题是400的状态码是否真的会在jQuery中触发错误。您可以使用
。始终
回调并获取请求的状态码,然后如果状态码为400,则执行此操作,否则执行此操作。是的,我想我更好地理解您的问题。它似乎确实源于这样一个事实,即当$.getJSON不成功时会抛出一个错误。