2009-07-02 44 views
3

我一直試着解決這個很長一段時間,現在知道爲什麼它不可能。 的URL建立json數據的jsonp包裝

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

返回一個JSON但是當我追加了「&回調=得到」伴隨着它,它不指定回調包裝函數。

所以現在唯一的解決方案是手動構建一個包裝器來圍繞json數據。

我的問題是我該怎麼做。 是否有一些代碼已經存在於php/javascript中,我可以根據我的規格進行更改。

任何意見將不勝感激。

謝謝

阿南德

回答

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 . ')'; 
?>