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中add()方法用法实例
Jan 08 Javascript
简单实现兼容各大浏览器的js复制内容到剪切板
Sep 09 Javascript
很棒的Bootstrap选项卡切换效果
Jul 01 Javascript
JS实现显示带倒影的图片横排居中放大展示特效实例【测试可用】
Aug 23 Javascript
轻松掌握JavaScript代理模式
Aug 26 Javascript
canvas实现爱心和彩虹雨效果
Mar 09 Javascript
Vue.js事件处理器与表单控件绑定详解
Mar 20 Javascript
jq.ajax+php+mysql实现关键字模糊查询(示例讲解)
Jan 02 Javascript
react 实现页面代码分割、按需加载的方法
Apr 03 Javascript
vue 巧用过渡效果(小结)
Sep 22 Javascript
vue中的v-model原理,与组件自定义v-model详解
Aug 04 Javascript
微信小程序基于ColorUI构建皮皮虾短视频去水印组件
Nov 04 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
防止本地用户用fsockopen DDOS攻击对策
2011/11/02 PHP
常用PHP封装分页工具类
2017/01/14 PHP
PHP截取发动短信内容的方法
2017/07/04 PHP
Yii2 队列 shmilyzxt/yii2-queue 简单概述
2017/08/02 PHP
Firefox div高度自适应
2009/04/28 Javascript
兼容ie、firefox的图片自动缩放的css跟js代码分享
2012/01/21 Javascript
ScrollDown的基本操作示例
2013/06/09 Javascript
搭建pomelo 开发环境
2014/06/24 Javascript
js实现n秒倒计时后才可以点击的效果
2015/12/20 Javascript
Node.js操作Firebird数据库教程
2016/03/04 Javascript
jQuery实现HTML表格单元格的合并功能
2016/04/06 Javascript
JS实现的模仿QQ头像资料卡显示与隐藏效果
2017/04/07 Javascript
vue下跨域设置的相关介绍
2017/08/26 Javascript
基于vue-element组件实现音乐播放器功能
2018/05/06 Javascript
js实现批量删除功能
2020/08/27 Javascript
v-slot和slot、slot-scope之间相互替换实例
2020/09/04 Javascript
[06:59]DOTA2-DPC中国联赛3月7日Recap集锦
2021/03/11 DOTA
Python实现同时兼容老版和新版Socket协议的一个简单WebSocket服务器
2014/06/04 Python
Python操作word常见方法示例【win32com与docx模块】
2018/07/17 Python
浅谈pytorch和Numpy的区别以及相互转换方法
2018/07/26 Python
使用Template格式化Python字符串的方法
2019/01/22 Python
python环境路径配置以及命令行运行脚本
2019/04/02 Python
Python实现哲学家就餐问题实例代码
2020/11/09 Python
Python接口自动化系列之unittest结合ddt的使用教程详解
2021/02/23 Python
美国山地自行车、露营、户外装备和服装购物网站:Aventuron
2018/05/05 全球购物
汽车技术服务与营销专业在籍生自荐信
2013/09/28 职场文书
文明礼仪小标兵事迹
2014/01/12 职场文书
2014小学教师个人工作总结
2014/11/10 职场文书
2014年高一班主任工作总结
2014/12/05 职场文书
2014年数学教研组工作总结
2014/12/06 职场文书
企业开业庆典答谢词
2015/01/20 职场文书
售后前台接待岗位职责
2015/04/03 职场文书
《圆的面积》教学反思
2016/02/19 职场文书
在pyCharm中下载第三方库的方法
2021/04/18 Python
Redis缓存-序列化对象存储乱码问题的解决
2021/06/21 Redis
python+pyhyper实现识别图片中的车牌号思路详解
2022/12/24 Python