作家
登录

基于Jquery的跨域传输数据(JSONP)

作者: 来源:www.28hudong.com 2013-03-30 00:58:33 阅读 我要评论

后端: 复制代码 代码如下: <?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帮助文件示例

  推荐阅读

  在jQuery1.5中使用deferred对象 着放大镜看Promise

引言在那篇经典的关于jQuery1.5中Deferred使用方法介绍的文章中(译文见这里),有下面一段描述: $.ajax() returns an object packed with other deferred-related methods. I discussed promise(), but you'll a>>>详细阅读


本文标题:基于Jquery的跨域传输数据(JSONP)

地址:http://www.17bianji.com/kaifa2/JS/24850.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)