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帮助文件示例

相关推荐