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 相关文章推荐
写了一个layout,拖动条连贯,内容区可为iframe
Aug 19 Javascript
jquery 面包屑导航 具体实现
Jun 05 Javascript
Javascript核心读书有感之表达式和运算符
Feb 11 Javascript
JS基于Mootools实现的个性菜单效果代码
Oct 21 Javascript
Jquery+Ajax+PHP+MySQL实现分类列表管理(下)
Oct 28 Javascript
简单讲解jQuery中的子元素过滤选择器
Apr 18 Javascript
解决微信小程序防止无法回到主页的问题
Sep 28 Javascript
浅谈发布订阅模式与观察者模式
Apr 09 Javascript
vue自定义switch开关组件,实现样式可自行更改
Nov 01 Javascript
JS如何寻找数组中心索引过程解析
Jun 01 Javascript
Vue实现摇一摇功能(兼容ios13.3以上)
Jan 26 Vue.js
浅谈react路由传参的几种方式
Mar 23 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 5.0对象模型深度探索之类的静态成员
2008/03/27 PHP
字母顺序颠倒而单词顺序不变的php代码
2010/08/08 PHP
CodeIgniter输出中文乱码的两种解决办法
2014/06/12 PHP
php中实现xml与mysql数据相互转换的方法
2014/12/25 PHP
php检查字符串中是否有外链的方法
2015/07/29 PHP
PHP命名空间namespace的定义方法详解
2017/03/29 PHP
PHP+redis实现微博的推模型案例分析
2019/07/10 PHP
List the Codec Files on a Computer
2007/06/11 Javascript
window.parent调用父框架时 ie跟火狐不兼容问题
2009/07/30 Javascript
prototype与jquery下Ajax实现的差别
2009/09/13 Javascript
javascript深入理解js闭包
2010/07/03 Javascript
jQuery 淡入淡出 png图在ie8下有黑色边框的解决方法
2013/03/05 Javascript
js淡入淡出的图片轮播效果代码分享
2015/08/24 Javascript
javascript轮播图算法
2016/10/21 Javascript
JavaScript动态检验密码强度的实现方法
2016/11/09 Javascript
详解VUE中v-bind的基本用法
2017/07/13 Javascript
vue.js组件vue-waterfall-easy实现瀑布流效果
2017/08/22 Javascript
vue中如何实现后台管理系统的权限控制的方法示例
2018/09/19 Javascript
vue集成百度UEditor富文本编辑器使用教程
2018/09/21 Javascript
layer.open 获取不到表单信息的解决方法
2019/09/26 Javascript
python在指定目录下查找gif文件的方法
2015/05/04 Python
对变量赋值的理解--Pyton中让两个值互换的实现方法
2017/11/29 Python
微信跳一跳自动运行python脚本
2018/01/08 Python
Python实现的随机森林算法与简单总结
2018/01/30 Python
python在线编译器的简单原理及简单实现代码
2018/02/02 Python
Pycharm代码无法复制,无法选中删除,无法编辑的解决方法
2018/10/22 Python
使用Python操作FTP实现上传和下载的方法
2019/04/01 Python
妙用itchat! python实现久坐提醒功能
2019/11/25 Python
Python  Asyncio模块实现的生产消费者模型的方法
2021/03/01 Python
生物专业个人自荐信范文
2013/11/29 职场文书
前台文员职责范本
2014/03/07 职场文书
实习公司领导推荐函
2014/05/21 职场文书
大学生自我推荐信范文
2015/03/24 职场文书
MongoDB安装使用并实现Python操作数据库
2021/06/28 MongoDB
使用pipenv管理python虚拟环境的全过程
2021/09/25 Python
js不常见操作运算符总结
2021/11/20 Javascript