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中使用replaceAll()函数实现字符替换的方法
Dec 25 Javascript
利用jQuery接受和处理xml数据的代码(.net)
Mar 28 Javascript
JS保留两位小数,多位小数的示例代码
Jan 07 Javascript
jquery等待效果示例
May 01 Javascript
js获取时间精确到秒(年月日)
Mar 16 Javascript
关于AngularJs数据的本地存储详解
Jan 20 Javascript
Vue的轮播图组件实现方法
Mar 03 Javascript
Angular5升级RxJS到5.5.3报错:EmptyError: no elements in sequence的解决方法
Apr 09 Javascript
vue.js2.0 实现better-scroll的滚动效果实例详解
Aug 13 Javascript
2种在vue项目中使用百度地图的简单方法
Sep 28 Javascript
uni-app实现点赞评论功能
Nov 25 Javascript
vue组件传值的实现方式小结【三种方式】
Feb 05 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
《OVERLORD》手游英文版即将上线 手机上也能扮演骨王
2020/04/09 日漫
资料注册后发信小技巧
2006/10/09 PHP
php的慢速日志引起的Mysql错误问题分析
2014/05/13 PHP
php单例模式示例分享
2015/02/12 PHP
PHP生成随机密码方法汇总
2015/08/27 PHP
Laravel中使用FormRequest进行表单验证方法及问题汇总
2016/06/19 PHP
php cookie 详解使用实例
2016/11/03 PHP
PHP实现的只保留字符串首尾字符功能示例【隐藏部分字符串】
2019/03/11 PHP
php7 参数、整形及字符串处理机制修改实例分析
2020/05/25 PHP
jquery.blockUI.js上传滚动等待效果实现思路及代码
2013/03/18 Javascript
一个JavaScript递归实现反转数组字符串的实例
2014/10/14 Javascript
Jquery焦点图实例代码
2014/11/25 Javascript
JS实现的仿东京商城菜单、仿Win右键菜单及仿淘宝TAB特效合集
2015/09/28 Javascript
sso跨域写cookie的一段js脚本(推荐)
2016/05/25 Javascript
Angular使用ng-messages与PHP进行表单数据验证
2016/12/28 Javascript
Vue.js实现多条件筛选、搜索、排序及分页的表格功能
2020/11/24 Javascript
JS数组搜索之折半搜索实现方法分析
2017/03/27 Javascript
Puppeteer环境搭建的详细步骤
2018/09/21 Javascript
使用weixin-java-miniapp配置进行单个小程序的配置详解
2019/03/29 Javascript
node.JS路径解析之PATH模块使用方法详解
2020/02/06 Javascript
[00:32]2018DOTA2亚洲邀请赛出场——LGD
2018/04/04 DOTA
python自定义类并使用的方法
2015/05/07 Python
编写Python脚本把sqlAlchemy对象转换成dict的教程
2015/05/29 Python
Python编写简单的HTML页面合并脚本
2016/07/11 Python
python实现beta分布概率密度函数的方法
2019/07/08 Python
python爬虫增加访问量的方法
2019/08/22 Python
Python绘图实现显示中文
2019/12/04 Python
在python中求分布函数相关的包实例
2020/04/15 Python
建筑工程造价专业自荐信
2014/07/08 职场文书
承诺书样本
2014/08/30 职场文书
领导个人查摆剖析材料
2014/10/29 职场文书
2014年信访维稳工作总结
2014/12/08 职场文书
老公保证书
2015/01/17 职场文书
2015年英语教研组工作总结
2015/05/23 职场文书
少年派的奇幻漂流观后感
2015/06/08 职场文书
导游词之台湾安平古堡
2019/12/25 职场文书