JQuery Ajax 跨域访问的解决方案


Posted in Javascript onMarch 12, 2010

具体情况有:
一、本域和子域的相互访问: http://www.aa.com/和book.aa.com
二、本域和其他域的相互访问: http://www.aa.com/和http://www.bb.com/ 用 iframe
三、本域和其他域的相互访问: http://www.aa.com/和http://www.bb.com/ 用 XMLHttpRequest访问代理
四、本域和其他域的相互访问: http://www.aa.com/和http://www.bb.com/ 用 JS创建动态脚本
今天主要讨论第4中解决方案,这个和上个的区别就是请求是使用<script>标签来请求的,这个要求也是两个域都是由你来开发才行。原理就是JS文件注入,在本域内的a内生成一个JS标签,它的SRC指向请求的另外一个域的某个页面b,b返回数据即可,可以直接返回JS的代码。因为script的src属性是可以跨域的。
这里我们需要用到JQuery.getScript(url, callback)方法,url是脚本文件的URL路劲,callback函数在脚本资源已被加载和求值后调用的回调函数。
首先在bb.com创建一个js文件,test.js

var ojb = {msg:'js跨域请求成功'};

然后在aa.com的页面上使用$.getScript加载test.js脚本
$(function() { 
$.getScript('http://www.bb.com/test.js', function() { 
if (ojb) { 
alert(obj.msg); 
} 
}); 
});

使用$.getScript函数的最大好处就是可以保证,脚本加载完毕后调用回调函数。
个人感觉这种方法比使用代理和iframe要简单一些。
Javascript 相关文章推荐
JavaScript Chart 插件整理
Jun 18 Javascript
浏览器常用高宽的jquery插件
Feb 24 Javascript
JavaScript实现两个Table固定表头根据页面大小自行调整
Jan 03 Javascript
JavaScript的21条基本知识点
Mar 04 Javascript
jQuery中:input选择器用法实例
Jan 03 Javascript
JS实现模拟风力的雪花飘落效果
May 13 Javascript
基于jquery实现日历签到功能
Sep 11 Javascript
JavaScript原型及原型链终极详解
Jan 04 Javascript
终于实现了!精彩的jquery弹幕效果
Jul 18 Javascript
JS实现商品筛选功能
Aug 19 Javascript
JavaScript之DOM插入更新删除_动力节点Java学院整理
Jul 03 Javascript
微信小程序之滑动页面隐藏和显示组件功能的实现代码
Jun 19 Javascript
ExtJS 学习专题(一) 如何应用ExtJS(附实例)
Mar 11 #Javascript
jquery 简单的进度条实现代码
Mar 11 #Javascript
精通JavaScript 纠正 cleanWhitespace函数
Mar 11 #Javascript
Javascript 入门基础学习
Mar 10 #Javascript
javascript showModalDialog,open取得父窗口的方法
Mar 10 #Javascript
ExtJs3.0中Store添加 baseParams 的Bug
Mar 10 #Javascript
js Date自定义函数 延迟脚本执行
Mar 10 #Javascript
You might like
Ajax实时验证用户名/邮箱等是否已经存在的代码打包
2011/12/01 PHP
浅谈PHP eval()函数定义和用法
2016/06/21 PHP
php模式设计之观察者模式应用实例分析
2019/09/25 PHP
PHP代码加密的方法总结
2020/03/13 PHP
可实现多表单提交的javascript函数
2007/08/01 Javascript
教您去掉ie网页加载进度条的方法
2010/12/09 Javascript
jquery 中多条件选择器,相对选择器,层次选择器的区别
2012/07/03 Javascript
ie 7/8不支持trim的属性的解决方案
2014/05/23 Javascript
JavaScript语言精粹经典实例(整理篇)
2016/06/07 Javascript
Vue.js学习笔记之 helloworld
2016/08/14 Javascript
js利用clipboardData实现截屏粘贴功能
2016/10/12 Javascript
Node.js批量给图片加水印的方法
2016/11/15 Javascript
JQueryMiniUI按照时间进行查询的实现方法
2017/06/07 jQuery
JavaScript实现正则去除a标签并保留内容的方法【测试可用】
2018/07/18 Javascript
JS实现换肤功能的方法实例详解
2019/01/30 Javascript
[03:46]显微镜下的DOTA2第七期——满血与残血
2014/06/20 DOTA
Python 提取dict转换为xml/json/table并输出的实现代码
2016/08/28 Python
Python中关键字global和nonlocal的区别详解
2018/09/03 Python
解决django 新增加用户信息出现错误的问题
2019/07/28 Python
Python any()函数的使用方法
2019/10/28 Python
Django 解决阿里云部署同步数据库报错的问题
2020/05/14 Python
Python Http请求json解析库用法解析
2020/11/28 Python
机电一体化专业推荐信
2013/12/03 职场文书
欢迎标语大全
2014/06/21 职场文书
外贸会计专业自荐信
2014/06/22 职场文书
改作风抓落实促发展心得体会
2014/09/10 职场文书
2014年最新个人对照检查材料范文
2014/09/25 职场文书
事业单位个人查摆问题及整改措施
2014/10/28 职场文书
《爱的教育》读书心得
2014/11/08 职场文书
2015年元旦晚会活动总结(学生会)
2014/11/28 职场文书
2015年教研组工作总结
2015/05/04 职场文书
运动会主持词大全
2015/07/02 职场文书
运动会宣传稿100字
2015/07/23 职场文书
如何书写邀请函?
2019/06/24 职场文书
深度学习tensorflow基础mnist
2021/04/14 Python
OpenCV图像变换之傅里叶变换的一些应用
2021/07/26 Python