2012-10-23 76 views
1

我想获取用户名的个人资料图像。所以我更喜欢使用twitter api版本1(api的常规版本是here)。但我的代码不会返回任何数据。我怎样才能解决这个问题?使用getJSON在json中获取数据

<html> 
<head> 
<script src="http://code.jquery.com/jquery-1.8.2.min.js"></script> 
<script> 
$(document).ready(function() { 
var userPage = "https//twitter.com/jack"; 
var arr = userPage.split("/"); 
var username = ""; 

for(i=3;i<4;i++) 
username += arr[i]; 

var page = 'https://api.twitter.com/1/users/show.json?screen_name='+username; 

     $.getJSON(page, function(data) { 
      alert(data.profile_image_url); 
     }); 

}) 

</script> 
</head> 

<body> 
</body> 

</html> 
+4

做'console.log(data)'并检查对象。 – xbonez

+0

你的'page'肯定有什么问题,'data.profile_image_url' _将提取图像-URI(至少对于示例代码)。猜猜'用户名'是错误的。 – davidkonrad

+1

您是否收到任何数据,或者是否有错误?您可能会遇到'Access-Control-Allow-Origin'的错误 –

回答

1

添加"&callback=?"的URL来强制JSONP格式,以绕过访问控制允许来源问题。

var page = 'https://api.twitter.com/1/users/show.json?screen_name='+username + "&callback=?"; 

EXAMPLE

JSONP

方式JSONP工作原理很简单,但需要 服务器端合作的一点点。基本上,这个想法是,你让 客户端决定一小部分任意文本,以将其添加到 JSON文档中,并将其包装在括号中以创建一个有效的 JavaScript文档(以及可能的有效函数调用)。

客户端通过使用名为jsonp的参数查询 与要预先设置的文本来决定任意前缀文本。简单!用空的 jsonp参数,结果文档简单地用JSON封装在 括号中。

+0

噢谢谢你!我刚刚意识到错误http://i.imgur.com/FHHmH.png – doruk

+1

你是最受欢迎的。很高兴我能帮忙=) – Chase