基于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基础知识大集锦(一) 推荐收藏
Jan 13 Javascript
javascript查找字符串中出现最多的字符和次数的小例子
Oct 29 Javascript
Javascript显示和隐藏ul列表的方法
Jul 15 Javascript
js如何打印object对象
Oct 16 Javascript
基于JS实现密码框(password)中显示文字提示功能代码
May 27 Javascript
原生JavaScript编写canvas版的连连看游戏
May 29 Javascript
基于slideout.js实现移动端侧边栏滑动特效
Nov 28 Javascript
简单的jQuery拖拽排序效果的实现(增强动态)
Feb 09 Javascript
Vue组件模板形式实现对象数组数据循环为树形结构(实例代码)
Jul 31 Javascript
jQuery 实现左右两侧菜单添加、移除功能
Jan 02 jQuery
vue 实现特定条件下绑定事件
Nov 09 Javascript
vue实现拖拽交换位置
Apr 07 Vue.js
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
一个简洁的多级别论坛
2006/10/09 PHP
探讨PHP函数ip2long转换IP时数值太大产生负数的解决方法
2013/06/06 PHP
基于datagrid框架的查询
2013/04/08 Javascript
JS中showModalDialog 的使用解析
2013/04/17 Javascript
js单词形式的运算符
2014/05/06 Javascript
Javascript基础教程之数组 array
2015/01/18 Javascript
Bootstrap打造一个左侧折叠菜单的系统模板(二)
2016/05/17 Javascript
JS查找字符串中出现最多的字符及个数统计
2017/02/04 Javascript
jquery+ajax实现省市区三级联动 (封装和不封装两种方式)
2017/05/15 jQuery
vue中axios处理http发送请求的示例(Post和get)
2017/10/13 Javascript
详解webpack性能优化——DLL
2017/10/20 Javascript
vue中使用echarts制作圆环图的实例代码
2018/07/27 Javascript
详解处理Vue单页面应用SEO的另一种思路
2018/11/09 Javascript
解决Vue @submit 提交后不刷新页面问题
2020/07/18 Javascript
Node.js web 应用如何封装到Docker容器中
2020/09/01 Javascript
Linux 下 Python 实现按任意键退出的实现方法
2016/09/25 Python
华为校园招聘上机笔试题 扑克牌大小(python)
2020/04/22 Python
python单例模式原理与创建方法实例分析
2019/10/26 Python
让你的Python代码实现类型提示功能
2019/11/19 Python
Python识别处理照片中的条形码
2020/11/16 Python
意大利综合购物网站:Giordano Shop
2016/10/21 全球购物
什么是Rollback Segment
2013/04/22 面试题
介绍一下Ruby的特点
2013/01/20 面试题
求职者应聘的自我评价
2013/10/16 职场文书
英文版销售经理个人求职信
2013/11/20 职场文书
安全检查管理制度
2014/02/02 职场文书
外语系毕业生求职自荐信
2014/04/12 职场文书
关于祖国的演讲稿
2014/05/04 职场文书
公司证明怎么写
2014/09/22 职场文书
个人向公司借款协议书
2014/10/09 职场文书
解决Tkinter中button按钮未按却主动执行command函数的问题
2021/05/23 Python
Go语言设计模式之结构型模式
2021/06/22 Golang
PostgreSQL并行计算算法及参数强制并行度设置方法
2022/04/07 PostgreSQL
Android Rxjava3 使用场景详解
2022/04/07 Java/Android
MongoDB支持的数据类型
2022/04/11 MongoDB
PYTHON基于Pyecharts绘制常见的直角坐标系图表
2022/04/28 Python