Jquery - getJSON 401“bug?”

时间:2011-03-04 12:56:22

标签: jquery getjson http-status-code-401

我遇到了jquery getjson的问题。

此代码有效

$.getJSON('http://twitter.com/status/user_timeline/USERNAME.json?count=10&callback=?', function(twitter_data)
{
    alert('works');          
});  



而且此代码没有?

$.getJSON('https://api.twitter.com/1/account/verify_credentials.json?callback=?', function(twitter_data)
{
   alert('no alert ?');
}); 

但为什么呢?有什么想法吗?

示例 - > http://jsfiddle.net/4wWJW/2/

事先

谢谢! 彼得

3 个答案:

答案 0 :(得分:8)

我在这里更新了您的代码版本:http://jsfiddle.net/4wWJW/9/

不幸的是,您提供的示例包含oauth_nonce我认为是一次性身份验证令牌。所以不幸的是,这不会奏效。您需要通过帐户进行身份验证才能进行调试。

我没有使用jQuery.getJSON,而是使用jQuery.ajax的长途电话。这允许使用错误处理程序。当ajax调用成功时,调用success函数,否则调用error函数。

在这种情况下,我可以看到呼叫不成功,例如不返回状态代码200,因此调用error函数。

你可以询问jqXHR对象和错误函数的其他参数,看看发生了什么。

答案 1 :(得分:2)

https://api.twitter.com/1/account/verify_credentials.json返回401状态代码。您在请求中没有send any credentials

答案 2 :(得分:0)

来自jQuery

重要提示:从jQuery 1.4开始,如果JSON文件包含语法错误,则请求通常会以静默方式失败。出于这个原因,避免频繁手动编辑JSON数据。 JSON是一种数据交换格式,其语法规则比JavaScript的对象文字符号更严格。例如,JSON中表示的所有字符串,无论它们是属性还是值,都必须用双引号括起来。

我猜想,就jQuery而言,返回错误相当于返回无效的JSON?