天天看點

用jQuery的getJSON方法實作跨域

在jQuery 1.2及以後的版本中可以用$.getJSON()來實作跨域通路,手冊中說是應用了一種叫做JSONP的技術,不過現在還沒有搞明白到底是個什麼東西,先用上再說。

jQuery.getJSON(url, [data], [callback]);

url:發送請求位址。

data:可選發送的參數,key/value 對。

callback:可選載入成功時的回調函數。

要使用JSONP的形式可以在請求位址後加上形如“callback=?”的參數,jQuery會自動替換 ? 為正确的函數名,以執行回調函數。

手冊上的例子

$.getJSON("http://api.flickr.com/services/feeds/

photos_public.gne?tags=cat&tagmode=any

&format=json&jsoncallback=?", function(data){

$.each(data.items, function(i, items){

$("<img/>").attr("src", item.media.m).appendTo("#images");

if(i == 3) return false;

});

});

有一點要注意的是,在伺服器端處理的時候,需要擷取JSONP使用的參數,輸出的時候要用。

$callback = $_GET['callback'];

$t = $_GET['t'];

echo $callback . "({webname:'$t'})"; //注意這裡