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