为json数据构建一个jsonp包装器

时间:2009-07-02 15:08:46

标签: json twitter jsonp

我一直在努力解决这个问题,现在知道为什么不可能。 网址

http://twittercounter.com/api/?username=Anand_Dasgupta&output=json&results=3

返回一个json但是当我附加一个“& callback = get”时,它没有指定回调包装函数。

所以现在唯一的解决方案是手动围绕json数据构建一个包装器。

我的问题是我该怎么做。 是否有一些代码已经存在于php / javascript中,我可以根据我的规格进行更改。

任何建议都将受到赞赏。

谢谢

阿南德

1 个答案:

答案 0 :(得分:3)

JSONP的目的是将JSON(将在客户端评估为JavaScript)包装到只有请求数据的客户端知道的回调中。这可以防止客户端执行不需要的JavaScript代码。如果没有回调,您将具有相同的原始策略问题(JSONP解决),因此您只能请求脚本来自的URL。

基本上,您必须使用PHP附加回调,这意味着在服务器端,使用代理脚本。该脚本从另一个URL检索数据并将其包装到回调中:

<?php
    // Don't know on the fly how to request data from another URL in PHP, but it's easy to find out
    $response = request_url('http://twittercounter.com/api/?username=Anand%5FDasgupta&output=json&results=3');
    echo $_GET['callback'] . '(' . $response . ')';
?>