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


Posted in Javascript onMarch 10, 2011

后端:

<?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 event flow 的一个bug详解
Sep 17 Javascript
jQuery检查事件是否触发的方法
Jun 26 Javascript
JavaScript程序开发之JS代码放置的位置
Jan 15 Javascript
jQuery.form.js插件不能解决连接超时(timeout)的原因分析及解决方法
Oct 14 Javascript
原生js实现鼠标跟随效果
Feb 28 Javascript
Angular.js组件之input mask对input输入进行格式化详解
Jul 10 Javascript
微信小程序实现拖拽 image 触摸事件监听的实例
Aug 17 Javascript
js中apply与call简单用法详解
Nov 06 Javascript
详解从买域名到使用pm2部署node.js项目全过程
Mar 07 Javascript
使用vue完成微信公众号网页小记(推荐)
Apr 28 Javascript
JavaScript HTML DOM元素 节点操作汇总
Jul 29 Javascript
微信小程序APP页面的之间的相互传递参数以及自定义组件
Apr 19 Javascript
jQuery.autocomplete 支持中文输入(firefox)修正方法
Mar 10 #Javascript
Jquery中getJSON在asp.net中的使用说明
Mar 10 #Javascript
JQuery中的$.getJSON 使用说明
Mar 10 #Javascript
基于jquery的地址栏射击游戏代码
Mar 10 #Javascript
基于jquery的无缝循环新闻列表插件
Mar 07 #Javascript
JavaScript对象之间的转换 jQuery对象和原声DOM
Mar 07 #Javascript
jQuery总体架构的理解分析
Mar 07 #Javascript
You might like
100多行PHP代码实现socks5代理服务器[2]
2016/05/05 PHP
详解no input file specified 三种解决方法
2019/11/29 PHP
数组方法解决JS字符串连接性能问题有争议
2011/01/12 Javascript
Extjs TimeField 显示正常时间格式的代码
2011/06/28 Javascript
JQuery判断子iframe何时加载完成解决方案
2013/08/20 Javascript
对table和ul实现js分页示例分享
2014/02/24 Javascript
jquery form表单序列化为对象的示例代码
2014/03/05 Javascript
JQuery中extend使用介绍
2014/03/13 Javascript
javascript中expression的用法整理
2014/05/13 Javascript
JS获取iframe中longdesc属性的方法
2015/04/01 Javascript
js限制文本框只能输入中文的方法
2015/08/11 Javascript
JavaScript如何实现图片懒加载(lazyload) 提高用户体验(增强版)
2016/11/30 Javascript
Javascript blur与click冲突解决办法
2017/01/09 Javascript
jQuery Pagination分页插件使用方法详解
2017/02/28 Javascript
jquery加载单文件vue组件的方法
2017/06/20 jQuery
JS实现移动端判断上拉和下滑功能
2017/08/07 Javascript
在Vue项目中取消ESLint代码检测的步骤讲解
2019/01/27 Javascript
javascript实现倒计时效果
2020/02/17 Javascript
微信小程序wx.getUserInfo授权获取用户信息(头像、昵称)的实现
2020/08/19 Javascript
Nodejs在局域网配置https访问的实现方法
2020/10/17 NodeJs
[01:16:37]【全国守擂赛】第三周决赛 Dark Knight vs. 一个弱队
2020/05/04 DOTA
python 从远程服务器下载东西的代码
2013/02/10 Python
Python 中 list 的各项操作技巧
2017/04/13 Python
Python使用sax模块解析XML文件示例
2019/04/04 Python
Python 最强编辑器详细使用指南(PyCharm )
2019/09/16 Python
基于Python中的yield表达式介绍
2019/11/19 Python
Python调用Windows API函数编写录音机和音乐播放器功能
2020/01/05 Python
用pandas划分数据集实现训练集和测试集
2020/07/20 Python
python 实现Harris角点检测算法
2020/12/11 Python
HTML5之SVG 2D入门10—滤镜的定义及使用
2013/01/30 HTML / CSS
Athleta官网:购买女士瑜伽服、技术运动服和休闲运动服
2020/11/12 全球购物
个人自我鉴定怎么写
2013/10/28 职场文书
医学专业五年以上个人求职信
2013/12/03 职场文书
中层干部竞争上岗演讲稿
2014/01/13 职场文书
个人催款函范文
2015/06/23 职场文书
直播实况, OMG破敌三路五十分钟大战神技局摩托车
2022/04/01 DOTA