2012-05-22 270 views
0

我必须向pipl.com(http://apis.pipl.com//search/v2/json/?email=maryuca_alias%40yahoo.com&person_mode=all&exact_name=0&no_sponsored=0&key=myKey)或oder申请获取关于某人的一些信息。该请求的响应是一个json对象。 我不能用ajax/jquery/jsonp调用来做到这一点,因为他们的服务器不支持这种类型的调用。 有没有办法处理服务器端(我使用Struts 1)或客户端的响应?Http请求和响应

如果您有解决方案,请回答此问题。

<html> 
<head> 
</head> 
<body> 
<script type="text/javascript"> 
function getJSONP(url, success) { 
var ud = '_' + +new Date, 
script = document.createElement('script'), 
head = document.getElementsByTagName('head')[0] 
|| document.documentElement; 
window[ud] = function(data) { 
head.removeChild(script); 
alert(data); 
success && success(data); 
}; 
script.src = url.replace('callback=?', 'callback=' + ud); 
head.appendChild(script); 
} 
getJSONP('http://apis.pipl.com//search/v2/json/?email=maryuca_alias 
%40yahoo.com&person_mode=all&exact_name=0&no_sponsored=0 
&key=key&callback=?', function(data){ 
console.log(data); 
});  
</script> 
</body> 
</html> 

回答

1

使用类似HttpClient的东西从Java发出请求,可能是由action类调用的服务。该响应可以由Java或JavaScript处理,具体取决于您的需求。

+0

我会试试这个。它似乎是最合适的。谢谢。 –

0

好吧,它看起来像你做一个有效的跨站请求,但你得到不同于预期的标题或数据不是JSON格式?

如果它的响应报头不正确,你总是可以在客户端解析数据。指定问题的最佳方式是粘贴请求,响应和代码的标题

+0

这不是一个有效的跨站点request.With经典的ajax调用,我得到的错误来源不允许。所以我试着用jsonp调用,但pipl.com不支持这种格式。 –

+0

0反对 \t 是啊,我已经读过他们的文档 - qiute穷人。 我可以推荐你的是尝试从jquery使用jsonp/ajax。 或更多trciky的东西,但将100%工作 - 调用我们的服务器上的ajax脚本,只需使用cURL或任何其他http请求库来获取页面内容。 – specone