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 相关文章推荐
jscript之List Excel Color Values
Jun 13 Javascript
jQuery 渐变下拉菜单
Dec 15 Javascript
JavaScript写的一个自定义弹出式对话框代码
Jan 17 Javascript
读jQuery之十四 (触发事件核心方法)
Aug 23 Javascript
js实现拉伸拖动iframe的具体代码
Aug 03 Javascript
浅析jQuery Mobile的初始化事件
Dec 03 Javascript
JavaScript实现弹出模态窗体并接受传值的方法
Feb 12 Javascript
JS获得多个同name 的input输入框的值的实现方法
Jan 09 Javascript
tangram.js库实现js类的方式实例分析
Jan 06 Javascript
浅析JavaScript预编译和暗示全局变量
Sep 03 Javascript
javascript代码实现简易计算器
Jan 25 Javascript
Ajax常用封装库——Axios的使用
May 08 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
PHP中文汉字验证码
2007/04/08 PHP
php 方便水印和缩略图的图形类
2009/05/21 PHP
ThinkPHP3.1新特性之动态设置自动完成和自动验证示例
2014/06/19 PHP
php获得客户端浏览器名称及版本的方法(基于ECShop函数)
2015/12/23 PHP
php文件缓存方法总结
2016/03/16 PHP
php+jQuery实现的三级导航栏下拉菜单显示效果
2017/08/10 PHP
JavaScript简单表格编辑功能实现方法
2015/04/16 Javascript
用JavaScript来美化HTML的select标签的下拉列表效果
2015/11/17 Javascript
Angular.js与node.js项目里用cookie校验账户登录详解
2017/02/22 Javascript
jQuery插件HighCharts实现的2D回归直线散点效果示例【附demo源码下载】
2017/03/09 Javascript
Vue之Watcher源码解析(1)
2017/07/19 Javascript
Angular4绑定html内容出现警告的处理方法
2017/11/03 Javascript
利用vue + element实现表格分页和前端搜索的方法
2017/12/25 Javascript
vue+axios+element ui 实现全局loading加载示例
2018/09/11 Javascript
详解VUE项目中安装和使用vant组件
2019/04/28 Javascript
深入浅析Vue 中 ref 的使用
2019/04/29 Javascript
webpack中如何加载静态文件的方法步骤
2019/05/18 Javascript
微信小程序自定义弹出层效果
2020/05/26 Javascript
[49:27]2018DOTA2亚洲邀请赛 4.4 淘汰赛 TNC vs VG 第一场
2018/04/05 DOTA
python为tornado添加recaptcha验证码功能
2014/02/26 Python
python迭代器实例简析
2014/09/25 Python
python数据结构之图深度优先和广度优先实例详解
2015/07/08 Python
Python中使用bidict模块双向字典结构的奇技淫巧
2016/07/12 Python
Python实现PS图像调整黑白效果示例
2018/01/25 Python
python之线程通过信号pyqtSignal刷新ui的方法
2019/01/11 Python
django连接oracle时setting 配置方法
2019/08/29 Python
Django单元测试中Fixtures的使用方法
2020/02/26 Python
安装python3.7编译器后如何正确安装opnecv的方法详解
2020/06/16 Python
canvas像素画板的实现代码
2018/11/21 HTML / CSS
商务助理岗位职责
2013/11/13 职场文书
幼儿园小班家长评语
2014/12/30 职场文书
4S店销售内勤岗位职责
2015/04/13 职场文书
2015年端午节活动方案
2015/05/05 职场文书
大学学习委员竞选稿
2015/11/20 职场文书
车位出租协议书范本
2016/03/19 职场文书
微信小程序和php的登录实现
2021/04/01 PHP