jQuery 之 纯js实现JSONP跨域
http://www.jquerycn.cn/content/20130712/3946.html
基于Jquery的跨域传输数据(JSONP),需要的朋友可以参考下。后端:
复制代码代码如下:
<?php
$json_str=json_encode(array("ddd"=>"11111111"));
echo$_GET['ja'].'('.$json_str.')';
?>
前端:
复制代码代码如下:
$.getJSON('http://www.liushan.cn/test.php?ja=?',function(json){
alert(json);
});
纯JS实现(JSONP):
复制代码代码如下:
//serverreturnaa({'ddd':'ddd'})callbackfunctionname:$_GET['callback']
//author:lonely
(function(w){
functiongetjson(){}
getjson.prototype.set=function(url,callback,callbackname){
this.callfn=callbackname||'urlcallback';
this.url=url+"?callback="+this.callfn;
try{
eval(this.callfn+"=function(data){\n"+
"callback(data);\n"+
'delete'+this.callfn+';}');
}catch(e){return;}
this.request();
deletethis.url;
}
getjson.prototype.request=function(){
varscript=document.createElement("script");
script.src=this.url;
varload=false;
script.onload=script.onreadystatechange=function(){
if(this.readyState==="loaded"||this.readyState==="complete"){
load=true;
script.onload=script.onreadystatechange=null;
}
};
varhead=document.getElementsByTagName("head")[0];
head.insertBefore(script,head.firstChild);
}
w.getjson=getjson;
})(window)
//使用DOME
newgetjson().set("http://www.test.cn/test.php",function(data){
alert(data.ddd);
});
另一个:getScript
复制代码代码如下:
jQuery.getScript("http://dev.jquery.com/view/trunk/plugins/color/jquery.color.js",function(){
$("#go").click(function(){
$(".block").animate({backgroundColor:'pink'},1000)
.animate({backgroundColor:'blue'},1000);
});
});//CHM帮助文件示例