日期:2014-05-16  浏览次数:20435 次

用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'})"; //注意这里