jquery下利用jsonp跨域访问实现方法


Posted in Javascript onJuly 29, 2010
$.ajax({ 
async:false, 
url: '', // 跨域URL 
type: 'GET', 
dataType: 'jsonp', 
jsonp: 'jsoncallback', //默认callback 
data: mydata, //请求数据 
timeout: 5000, 
beforeSend: function(){ //jsonp 方式此方法不被触发。原因可能是dataType如果指定为jsonp的话,就已经不是ajax事件了 
}, 
success: function (json) { //客户端jquery预先定义好的callback函数,成功获取跨域服务器上的json数据后,会动态执行这个callback函数 
if(json.actionErrors.length!=0){ 
alert(json.actionErrors); 
} }, 
complete: function(XMLHttpRequest, textStatus){ 
}, 
error: function(xhr){ 
//jsonp 方式此方法不被触发 
//请求出错处理 
alert("请求出错(请检查相关度网络状况.)"); 
} 
});

$.getJSON(url+"?callback=?", 
function(json){ });

这种方式其实是上例$.ajax({..}) 的一种高级封装。

在服务端通过获得callback参数(如:jsonp*****)得到jQuery端随后要回调的
然后返回类似:"jsonp*****("+要返回的json数组+")";
jquery就会通过回调方法动态加载调用这个:jsonp*****(json数组);
这样就达到了跨域数据交换的目的.

JSONP是一种脚本注入(Script Injection)行为,所以也有一定的安全隐患。

注意:jquey是不支持post方式跨域的。
参考:http://www.ibm.com/developerworks/cn/web/wa-aj-jsonp1/

Javascript 相关文章推荐
javascript 面向对象编程 聊聊对象的事
Sep 17 Javascript
dreamweaver 安装Jquery智能提示
Apr 02 Javascript
关于jquery css的使用介绍
Apr 18 Javascript
Jquery自定义button按钮的几种方法
Jun 11 Javascript
a标签click和href执行顺序探讨
Jun 23 Javascript
js实现适用于素材网站的黑色多级菜单导航条效果
Aug 24 Javascript
Bootstrap3 内联单选和多选框
Dec 29 Javascript
JS实现鼠标拖拽盒子移动及右键点击盒子消失效果示例
Jan 29 Javascript
详解微信小程序开发用户授权登陆
Apr 24 Javascript
JS异步错误捕获的一些事小结
Apr 26 Javascript
vue 返回上一页,页面样式错乱的解决
Nov 14 Javascript
vue vantUI tab切换时 list组件不触发load事件的问题及解决方法
Feb 14 Javascript
jquery-easyui关闭tab自动切换到前一个tab
Jul 29 #Javascript
jquery 图片轮换效果
Jul 29 #Javascript
jQuery的写法不同导致的兼容性问题的解决方法
Jul 29 #Javascript
基于jQuery制作迷你背词汇工具
Jul 27 #Javascript
IE之动态添加DOM节点触发window.resize事件
Jul 27 #Javascript
js操作二级联动实现代码
Jul 27 #Javascript
jquery.jstree 增加节点的双击事件代码
Jul 27 #Javascript
You might like
php array_search() 函数使用
2010/04/13 PHP
ThinkPHP中__initialize()和类的构造函数__construct()用法分析
2014/11/29 PHP
php脚本守护进程原理与实现方法详解
2017/07/20 PHP
PHP基于SPL实现的迭代器模式示例
2018/04/22 PHP
iframe 父窗口和子窗口相互的调用方法集锦
2010/12/15 Javascript
浅谈javascript的原型继承
2012/07/25 Javascript
Javascript遍历Html Table示例(包括内容和属性值)
2014/07/08 Javascript
一个支持任意尺寸的图片上下左右滑动效果
2014/08/24 Javascript
JavaScript中的eval()函数使用介绍
2014/12/31 Javascript
逻辑表达式中与或非的用法详解
2016/06/06 Javascript
Vue的MVVM实现方法
2017/08/16 Javascript
JS库 Highlightjs 添加代码行号的实现代码
2017/09/13 Javascript
详解如何让Express支持async/await
2017/10/09 Javascript
nodejs脚本centos开机启动实操方法
2020/03/04 NodeJs
JS实现可控制的进度条
2020/03/25 Javascript
Vue实现省市区三级联动
2020/12/27 Vue.js
[02:25]专访DOTA2负责人Erik 国际邀请赛暂不会离开西雅
2014/07/21 DOTA
Python使用htpasswd实现基本认证授权的例子
2014/06/10 Python
在Python的Django框架中为代码添加注释的方法
2015/07/16 Python
python中模块的__all__属性详解
2017/10/26 Python
利用Python如何批量更新服务器文件
2018/07/29 Python
Python如何优雅删除字符列表空字符及None元素
2020/06/25 Python
Python本地及虚拟解释器配置过程解析
2020/10/13 Python
美国综合购物商城:UnbeatableSale.com
2018/11/28 全球购物
意大利火车票和铁路通行证专家:ItaliaRail
2019/01/22 全球购物
是什么让J2EE适合用来开发多层的分布式的应用
2015/01/16 面试题
什么是静态路由?什么是动态路由?各自的特点是什么?
2015/09/16 面试题
如何通过jdbc调用存储过程
2012/04/19 面试题
医院护士求职自荐信格式
2013/09/21 职场文书
2014年车间工作总结
2014/11/21 职场文书
小学语文教师年度考核个人总结
2015/02/05 职场文书
教师个人成长总结
2015/02/11 职场文书
Python中threading库实现线程锁与释放锁
2021/05/17 Python
vscode中使用npm安装babel的方法
2021/08/02 Javascript
MySQL数据库如何给表设置约束详解
2022/03/13 MySQL
使用ICOM IC-R9500接收机同时测评十台收音机中波接收性能
2022/05/10 无线电