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 相关文章推荐
jQuery 学习6 操纵元素显示效果的函数
Feb 07 Javascript
基于Jquery的简单&简陋Tabs插件代码
Feb 09 Javascript
Js组件的一些写法
Sep 10 Javascript
javascript setTimeout和setInterval计时的区别详解
Jun 21 Javascript
jquery 扑捉回车键事件代码
Apr 24 Javascript
js 获取页面高度和宽度兼容 ie firefox chrome等
May 14 Javascript
json的使用小结
Jun 08 Javascript
jQuery根据ID、CLASS、等获取对象的实例
Dec 04 Javascript
微信小程序与后台PHP交互的方法实例分析
Dec 10 Javascript
使用vue-cli3新建一个项目并写好基本配置(推荐)
Apr 24 Javascript
Vue的编码技巧与规范使用详解
Aug 28 Javascript
原生javascript如何实现共享onload事件
Jul 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
农民和部队如何穿矿
2020/03/04 星际争霸
php实现插入排序
2015/03/29 PHP
PHP格式化MYSQL返回float类型的方法
2016/03/30 PHP
laravel5.1 ajax post 传值_token示例
2019/10/24 PHP
经常用到的JavasScript事件的翻译
2007/04/09 Javascript
IE DOM实现存在的部分问题及解决方法
2009/07/25 Javascript
js 操作符实例代码
2009/10/24 Javascript
关闭浏览器窗口弹出提示框并且可以控制其失效
2014/04/15 Javascript
jquery JSON的解析方式示例介绍
2014/07/27 Javascript
深入理解Java线程编程中的阻塞队列容器
2015/12/07 Javascript
实例详解jQuery表单验证插件validate
2016/01/18 Javascript
Jquery中巧用Ajax的beforeSend方法
2016/01/20 Javascript
非常酷炫的Bootstrap图片轮播动画
2016/05/27 Javascript
详解MVC如何使用开源分页插件(shenniu.pager.js)
2016/12/16 Javascript
js正则表达式最长匹配(贪婪匹配)和最短匹配(懒惰匹配)用法分析
2016/12/27 Javascript
基于jquery.page.js实现分页效果
2018/01/01 jQuery
基于vue-cli 打包时抽离项目相关配置文件详解
2018/03/07 Javascript
webpack css加载和图片加载的方法示例
2018/09/11 Javascript
如何封装了一个vue移动端下拉加载下一页数据的组件
2019/01/06 Javascript
学习RxJS之JavaScript框架Cycle.js
2019/06/17 Javascript
跟老齐学Python之list和str比较
2014/09/20 Python
对numpy中array和asarray的区别详解
2018/04/17 Python
Python安装lz4-0.10.1遇到的坑
2018/05/20 Python
Python实现批量修改图片格式和大小的方法【opencv库与PIL库】
2018/12/03 Python
Python logging模块进行封装实现原理解析
2020/08/07 Python
Python自动登录QQ的实现示例
2020/08/28 Python
基于CSS3实现立方体自转效果
2016/03/01 HTML / CSS
美国电视购物HSN官网:HSN
2016/09/07 全球购物
Yahoo-PHP面试题1
2016/07/20 面试题
市场营销专业自荐书
2014/06/10 职场文书
合法的离婚协议书范本
2014/10/23 职场文书
教师廉洁自律个人总结
2015/02/10 职场文书
2015年毕业生个人自荐书
2015/03/24 职场文书
从严治党主题教育活动总结
2015/05/07 职场文书
MySQL 常见的数据表设计误区汇总
2021/06/07 MySQL
Python中字符串对象语法分享
2022/02/24 Python