基于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 相关文章推荐
Ext 今日学习总结
Sep 19 Javascript
jquery ajax post提交数据乱码
Nov 05 Javascript
Javascript 按位取反运算符 (~)
Feb 04 Javascript
完美兼容各大浏览器获取HTTP_REFERER方法总结
Jun 24 Javascript
Jquery仿IGoogle实现可拖动窗口示例代码
Aug 22 Javascript
jQuery固定元素插件scrolltofixed使用指南
Apr 21 Javascript
jQuery中next方法用法实例
Apr 24 Javascript
Node.js中环境变量process.env的一些事详解
Oct 26 Javascript
Node.js使用Angular简单示例
May 11 Javascript
vue elementui el-form rules动态验证的实例代码详解
May 23 Javascript
用JavaScript实现贪吃蛇游戏
Oct 23 Javascript
vue使用vant中的checkbox实现全选功能
Nov 17 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
上海地方志办公室-上海电子仪表工业志
2021/03/04 无线电
Session的工作方式
2006/10/09 PHP
一个图形显示IP的PHP程序代码
2007/10/19 PHP
PHP里的中文变量说明
2011/07/23 PHP
推荐一本PHP程序猿都应该拜读的书
2014/12/31 PHP
自写的利用PDO对mysql数据库增删改查操作类
2018/02/19 PHP
静态的动态续篇之来点XML
2006/12/23 Javascript
文本框根据输入内容自适应高度的代码
2011/10/24 Javascript
创建公共调用 jQuery Ajax 带返回值
2012/08/01 Javascript
获取select元素被选中的文本内容的js代码
2014/01/29 Javascript
jquery实现的网页自动播放声音
2014/04/30 Javascript
使用js获取图片原始尺寸
2014/12/03 Javascript
Javascript基础教程之JavaScript语法
2015/01/18 Javascript
javascript跨域原因以及解决方案分享
2015/04/08 Javascript
jQuery的end()方法使用详解
2015/07/15 Javascript
Angularjs全局变量被作用域监听的正确姿势
2016/02/06 Javascript
onclick和onblur冲突问题的快速解决方法
2016/04/28 Javascript
Vue实现一个返回顶部backToTop组件
2017/07/25 Javascript
select标签设置默认选中的选项方法
2018/03/02 Javascript
详解适配器在JavaScript中的体现
2018/09/28 Javascript
JS实现的检验身份证格式并输出出生日期,年龄,性别,出生地示例
2019/05/17 Javascript
Nuxt项目支持eslint+pritter+typescript的实现
2019/05/20 Javascript
javascript设计模式 ? 观察者模式原理与用法实例分析
2020/04/22 Javascript
Python判断变量是否已经定义的方法
2014/08/18 Python
Python实现带百分比的进度条
2016/06/28 Python
Anaconda下安装mysql-python的包实例
2018/06/11 Python
对pyqt5多线程正确的开启姿势详解
2019/06/14 Python
详解Python图像处理库Pillow常用使用方法
2019/09/02 Python
python 实现单通道转3通道
2019/12/03 Python
Scrapy框架基本命令与settings.py设置
2020/02/06 Python
python3 使用ssh隧道连接mysql的操作
2020/12/05 Python
加拿大城市本地限时优惠:Buytopia.ca
2018/09/19 全球购物
意大利时尚奢侈品店:D’Aniello Boutique
2021/01/19 全球购物
学习党代会心得体会
2014/09/05 职场文书
2015暑期社会实践通讯稿
2015/07/18 职场文书
Goland使用Go Modules创建/管理项目的操作
2021/05/06 Golang