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 相关文章推荐
JScript中使用ADODB.Stream判断文件编码的代码
Jun 09 Javascript
checkbox 复选框不能为空
Jul 11 Javascript
javascript 冒泡排序 正序和倒序实现代码
Dec 14 Javascript
扒一扒JavaScript 预解释
Jan 28 Javascript
JS回调函数简单用法示例
Feb 09 Javascript
ES6新特性之解构、参数、模块和记号用法示例
Apr 01 Javascript
使用Require.js封装原生js轮播图的实现代码
Jun 15 Javascript
ComboBox(下拉列表框)通过url加载调用远程数据的方法
Aug 06 Javascript
轻松搞定jQuery+JSONP跨域请求的解决方案
Mar 06 jQuery
elementUI vue this.$confirm 和el-dialog 弹出框 移动 示例demo
Jul 03 Javascript
如何在postman测试用例中实现断言过程解析
Jul 09 Javascript
鸿蒙系统中的 JS 开发框架
Sep 18 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 表单验证实现代码
2009/03/10 PHP
使用session判断用户登录用户权限(超简单)
2013/06/08 PHP
php获取一个变量的名字的方法
2014/09/05 PHP
PHP使用header()输出图片缓存实例
2014/12/09 PHP
php解决和避免form表单重复提交的几种方法
2016/08/31 PHP
PHP根据树的前序遍历和中序遍历构造树并输出后序遍历的方法
2017/11/10 PHP
PHP实现基于PDO扩展连接PostgreSQL对象关系数据库示例
2018/03/31 PHP
JavaScript的Cookies
2008/01/16 Javascript
javascript 用函数语句和表达式定义函数的区别详解
2014/01/06 Javascript
使用JS或jQuery模拟鼠标点击a标签事件代码
2014/03/10 Javascript
JS实现仿Windows经典风格的选项卡Tab切换代码
2015/10/20 Javascript
BootStrap入门教程(一)之可视化布局
2016/09/19 Javascript
利用canvas实现的加载动画效果实例代码
2017/07/05 Javascript
vue jsx 使用指南及vue.js 使用jsx语法的方法
2017/11/11 Javascript
详解React Native 屏幕适配(炒鸡简单的方法)
2018/06/11 Javascript
手把手教你用Node.js爬虫爬取网站数据的方法
2018/07/05 Javascript
vue 配置多页面应用的示例代码
2018/10/22 Javascript
vue+elementUi图片上传组件使用详解
2019/08/20 Javascript
JSONP解决JS跨域问题的实现
2020/05/25 Javascript
Python获取本机所有网卡ip,掩码和广播地址实例代码
2018/01/22 Python
Python实现PS滤镜Fish lens图像扭曲效果示例
2018/01/29 Python
Django migrations 默认目录修改的方法教程
2018/09/28 Python
python DataFrame 取差集实例
2019/01/30 Python
Python Matplotlib 基于networkx画关系网络图
2019/07/10 Python
python 字符串常用方法汇总详解
2019/09/16 Python
python Matplotlib基础--如何添加文本和标注
2021/01/26 Python
全球摩托车装备领导者:RevZilla
2017/09/04 全球购物
日本快乐生活方式购物网站:Shop Japan
2018/07/17 全球购物
英国女性时尚品牌:Apricot
2018/12/04 全球购物
什么是命名空间(NameSpace)
2015/11/24 面试题
留学生如何写好自荐信
2013/12/27 职场文书
php随机生成验证码,php随机生成数字,php随机生成数字加字母!
2021/04/01 PHP
html5表单的required属性使用
2021/07/07 HTML / CSS
PHP设计模式(观察者模式)
2021/07/07 PHP
【海涛解说】pis亲自推荐,其实你从来不会玩NW
2022/04/01 DOTA
Android移动应用开发指南之六种布局详解
2022/09/23 Java/Android