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 相关文章推荐
两个SUBMIT按钮,如何区分处理
Aug 22 Javascript
动态调用css文件——jquery的应用
Feb 20 Javascript
JS 添加网页桌面快捷方式的代码详细整理
Dec 27 Javascript
解析jquery获取父窗口的元素
Jun 26 Javascript
引用 js在IE与FF之间的区别详细解析
Nov 20 Javascript
探讨JavaScript中声明全局变量三种方式的异同
Dec 03 Javascript
js判断为空Null与字符串为空简写方法
Feb 24 Javascript
JavaScript中几种排序算法的简单实现
Jul 29 Javascript
AnjularJS中$scope和$rootScope的区别小结
Sep 18 Javascript
vue.js实现仿原生ios时间选择组件实例代码
Dec 21 Javascript
在Create React App中启用Sass和Less的方法示例
Jan 16 Javascript
基于layui轮播图满屏是高度自适应的解决方法
Sep 16 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中养成7个面向对象的好习惯
2010/07/17 PHP
php中实现简单的ACL 完结篇
2011/09/07 PHP
那些年一起学习的PHP(三)
2012/03/22 PHP
从零开始学YII2框架(二)通过 Composer 安装扩展插件
2014/08/20 PHP
PHP序列化操作方法分析
2016/09/28 PHP
Javascript 函数中的参数使用分析
2010/03/27 Javascript
详谈 Jquery Ajax异步处理Json数据.
2011/09/09 Javascript
javascript中的作用域和闭包详解
2016/01/13 Javascript
AngularJS基础 ng-hide 指令用法及示例代码
2016/08/01 Javascript
vue动态生成dom并且自动绑定事件
2017/04/19 Javascript
微信小程序开发之animation循环动画实现的让云朵飘效果
2017/07/14 Javascript
ES6 Class中实现私有属性的一些方法总结
2019/07/08 Javascript
基于Element的组件改造的树形选择器(树形下拉框)
2020/02/27 Javascript
有关vue 开发钉钉 H5 微应用 dd.ready() 不执行问题及快速解决方案
2020/05/09 Javascript
详解python发送各类邮件的主要方法
2016/12/22 Python
PyQt5每天必学之工具提示功能
2018/04/19 Python
对PyTorch torch.stack的实例讲解
2018/07/30 Python
Python3.5常见内置方法参数用法实例详解
2019/04/29 Python
利用python在excel中画图的实现方法
2020/03/17 Python
python3 通过 pybind11 使用Eigen加速代码的步骤详解
2020/12/07 Python
Python类型转换的魔术方法详解
2020/12/23 Python
css3和jquery实现的可折叠导航菜单适合放在手机网页的导航菜单
2014/09/02 HTML / CSS
HTML高亮关键字的实现代码
2018/10/22 HTML / CSS
美国知名的家庭连锁百货商店:Boscov’s
2017/07/27 全球购物
SEPHORA丝芙兰捷克官网:购买香水、化妆品和护肤品
2018/11/26 全球购物
巴西24小时在线药房:Droga Raia
2020/05/12 全球购物
交通事故检查书范文
2014/01/30 职场文书
三个儿子教学反思
2014/02/03 职场文书
项目经理任命书
2014/06/04 职场文书
“九一八事变纪念日”国旗下讲话稿
2014/09/14 职场文书
学前班幼儿评语大全
2014/12/29 职场文书
2015圣诞节贺卡寄语
2015/03/24 职场文书
2015年科学教研组工作总结
2015/07/22 职场文书
MySQL之高可用集群部署及故障切换实现
2021/04/22 MySQL
vue修饰符.capture和.self的区别
2022/04/22 Vue.js
vue-cli3.x配置全局的scss的时候报错问题及解决
2022/04/30 Vue.js