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 撑出页面文字换行
Jun 15 Javascript
jQuery 添加/移除CSS类实现代码
Feb 11 Javascript
基于angular中的重要指令详解($eval,$parse和$compile)
Oct 21 Javascript
jQuery+PHP+Mysql实现抽奖程序
Apr 12 jQuery
详解Angular之constructor和ngOnInit差异及适用场景
Jun 22 Javascript
通过js控制时间,一秒一秒自己动的实例
Oct 25 Javascript
Vue 实现拖动滑块验证功能(只有css+js没有后台验证步骤)
Aug 24 Javascript
js使用formData实现批量上传
Mar 27 Javascript
浅谈layer弹出层按钮颜色修改方法
Sep 11 Javascript
selenium+java中用js来完成日期的修改
Oct 31 Javascript
JS实现可以用键盘方向键控制的动画
Dec 11 Javascript
JavaScript架构搭建前端监控如何采集异常数据
Jun 25 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
新版mysql+apache+php Linux安装指南
2006/10/09 PHP
PHP 截取字符串 分别适合GB2312和UTF8编码情况
2009/02/12 PHP
php实现文件下载简单示例(代码实现文件下载)
2014/03/10 PHP
PHP实现微信网页授权开发教程
2016/01/19 PHP
PHP使用OB缓存实现静态化功能示例
2019/03/23 PHP
js验证模型自我实现的具体方法
2013/06/21 Javascript
JQuery实现点击div以外的位置隐藏该div窗口
2013/09/13 Javascript
登陆成功后自动计算秒数执行跳转
2014/01/23 Javascript
jQuery后代选择器用法实例
2014/12/23 Javascript
详细解读JavaScript的跨浏览器事件处理
2015/08/12 Javascript
js电话号码验证方法
2015/09/28 Javascript
移动端js触摸事件详解
2016/09/18 Javascript
react 实现页面代码分割、按需加载的方法
2018/04/03 Javascript
JavaScript fetch接口案例解析
2018/08/30 Javascript
vue2中使用sass并配置全局的sass样式变量的方法
2018/09/04 Javascript
vue+Element-ui前端实现分页效果
2020/11/15 Javascript
解析Python编程中的包结构
2015/10/25 Python
python 2.6.6升级到python 2.7.x版本的方法
2016/10/09 Python
Python实现读取json文件到excel表
2017/11/18 Python
Python WEB应用部署的实现方法
2019/01/02 Python
如何使用python传入不确定个数参数
2020/02/18 Python
Python利用pip安装tar.gz格式的离线资源包
2020/09/14 Python
解决pytorch下出现multi-target not supported at的一种可能原因
2021/02/06 Python
css3通过scale()、rotate()实现放大、旋转
2020/03/19 HTML / CSS
利用canvas实现图片下载功能来实现浏览器兼容问题
2019/05/31 HTML / CSS
选购世界上最好的美妆品:Cult Beauty
2017/11/03 全球购物
法国体育用品商店:GO Sport
2019/10/23 全球购物
应届毕业生求职信范文
2013/12/18 职场文书
2014年毕业演讲稿范文
2014/05/13 职场文书
企业宗旨标语
2014/06/10 职场文书
明星员工获奖感言
2014/08/14 职场文书
企业领导班子四风对照检查材料
2014/09/27 职场文书
2014年客服工作总结与计划
2014/12/09 职场文书
军训通讯稿范文
2015/07/18 职场文书
2019各种保证书范文
2019/06/24 职场文书
使用Oracle跟踪文件的问题详解
2021/06/28 Oracle