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的版本实现执行不同的代码
May 11 Javascript
js TextArea的选中区域处理
Dec 28 Javascript
javascript 弹出层组件(升级版)
May 12 Javascript
电子商务网站上的常用的js放大镜效果
Dec 08 Javascript
javascript使用正则获取url上的某个参数
Sep 04 Javascript
javascript手工制作悬浮菜单
Feb 12 Javascript
javascript实现的固定位置悬浮窗口实例
Apr 30 Javascript
js中javascript:void(0) 真正含义
Nov 05 Javascript
AngularJS实现网站换肤实例
Feb 19 Javascript
原生js更改css样式的两种方式
Mar 15 Javascript
js Element Traversal规范中的元素遍历方法
Apr 19 Javascript
Vue的Eslint配置文件eslintrc.js说明与规则介绍
Feb 03 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操作Memcache实例介绍
2013/06/14 PHP
生成随机字符串和验证码的类的PHP实例
2013/12/24 PHP
php大小写转换函数(strtolower、strtoupper)用法介绍
2017/11/17 PHP
PHP封装的简单连接MongoDB类示例
2019/02/13 PHP
轻量级 JS ToolTip提示效果
2010/07/20 Javascript
Angularjs过滤器使用详解
2016/05/25 Javascript
jQuery实现左侧导航模块的显示与隐藏效果
2016/07/04 Javascript
详解vue静态资源打包中的坑与解决方案
2018/02/05 Javascript
微信小程序中时间戳和日期的相互转换问题
2018/07/09 Javascript
详解axios中封装使用、拦截特定请求、判断所有请求加载完毕)
2019/04/09 Javascript
js找出5个数中最大的一个数和倒数第二大的数实现方法示例小结
2020/03/04 Javascript
vue如何在用户要关闭当前网页时弹出提示的实现
2020/05/31 Javascript
python中list循环语句用法实例
2014/11/10 Python
自己使用总结Python程序代码片段
2015/06/02 Python
Python实现的双色球生成功能示例
2017/12/18 Python
python正则表达式之对号入座篇
2018/07/24 Python
Python 字符串换行的多种方式
2018/09/06 Python
Python 运行 shell 获取输出结果的实例
2019/01/07 Python
python爬取内容存入Excel实例
2019/02/20 Python
Python 格式化输出_String Formatting_控制小数点位数的实例详解
2020/02/04 Python
如何用Python 实现全连接神经网络(Multi-layer Perceptron)
2020/10/15 Python
大唐电信科技股份有限公司java工程师面试经历
2016/12/09 面试题
杭州SQL浙江浙大网新恩普软件有限公司
2013/07/27 面试题
自我评价中英文语句
2013/11/30 职场文书
公司部门司机岗位职责
2014/01/03 职场文书
入党积极分子自我鉴定范文
2014/03/25 职场文书
《大自然的语言》教学反思
2014/04/08 职场文书
省文明单位申报材料
2014/05/08 职场文书
离婚协议书样本
2015/01/26 职场文书
运动会开幕词
2015/01/28 职场文书
企业财务总监岗位职责
2015/04/03 职场文书
教师网络培训心得体会
2016/01/09 职场文书
公司周年庆寄语
2019/06/21 职场文书
聘任书的格式及模板
2019/10/28 职场文书
一文了解MYSQL三大范式和表约束
2022/04/03 MySQL
Python中使用Opencv开发停车位计数器功能
2022/04/04 Python