在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'})"; //注意這裡