基于Jquery的跨域传输数据(JSONP)
基于Jquery的跨域传输数据(JSONP)
发布时间:2016-12-30 来源:查字典编辑
摘要:后端:复制代码代码如下:前端:复制代码代码如下:$.getJSON('http://www.liushan.cn/test.php?ja=?...

后端:

复制代码 代码如下:

<?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):

复制代码 代码如下:

//server return aa({'ddd':'ddd'}) callback function name: $_GET['callback']

//author:lonely

(function(w){

function getjson(){}

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();

delete this.url;

}

getjson.prototype.request=function(){

var script=document.createElement("script");

script.src=this.url;

var load=false;

script.onload = script.onreadystatechange = function() {

if(this.readyState === "loaded" || this.readyState === "complete"){

load=true;

script.onload = script.onreadystatechange=null;

}

};

var head=document.getElementsByTagName("head")[0];

head.insertBefore(script,head.firstChild);

}

w.getjson=getjson;

})(window)

//使用DOME

new getjson().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帮助文件示例

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新Javascript教程学习
热门Javascript教程学习
编程开发子分类