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调试工具(下载)
Jan 09 Javascript
javascript入门·对象属性方法大总结
Oct 01 Javascript
原生Js与jquery的多组处理, 仅展开一个区块的折叠效果
Jan 09 Javascript
JS数组去重与取重的示例代码
Jan 24 Javascript
JavaScript中的原始值和复杂值
Jan 07 Javascript
AngularJS入门教程之模块化操作用法示例
Nov 02 Javascript
最常见和最有用的字符串相关的方法详解
Feb 06 Javascript
jQuery插件zTree实现获取一级节点数据的方法
Mar 08 Javascript
highcharts 在angular中的使用示例代码
Sep 20 Javascript
基于Vue实现拖拽效果
Apr 27 Javascript
JavaScript自动生成 年月范围 选择功能完整示例【基于jQuery插件】
Sep 03 jQuery
JS实现星星海特效
Dec 24 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
PL-880隐藏功能
2021/03/01 无线电
第十五节--Zend引擎的发展
2006/11/16 PHP
php 删除记录实现代码
2009/03/12 PHP
Yii2 GridView实现列表页直接修改数据的方法
2016/05/16 PHP
Laravel 集成微信用户登录和绑定的实现
2019/12/27 PHP
使用正则替换变量
2007/05/05 Javascript
jQuery Pagination Ajax分页插件(分页切换时无刷新与延迟)中文翻译版
2013/01/11 Javascript
Jquery封装tab自动切换效果的具体实现
2013/07/13 Javascript
浅谈 jQuery 事件源码定位问题
2014/06/18 Javascript
js兼容火狐显示上传图片预览效果的方法
2015/05/21 Javascript
简介JavaScript中setUTCSeconds()方法的使用
2015/06/12 Javascript
深入理解MVC中的时间js格式化
2016/05/19 Javascript
node上的redis调用优化示例详解
2018/10/30 Javascript
Next.js实现react服务器端渲染的方法示例
2019/01/06 Javascript
微信小程序实现元素渐入渐出动画效果封装方法
2019/05/18 Javascript
Python时间戳与时间字符串互相转换实例代码
2013/11/28 Python
python中enumerate函数用法实例分析
2015/05/20 Python
Python的Flask站点中集成xhEditor文本编辑器的教程
2016/06/13 Python
pycharm设置鼠标悬停查看方法设置
2019/07/29 Python
python中append实例用法总结
2019/07/30 Python
在pytorch中对非叶节点的变量计算梯度实例
2020/01/10 Python
详解pycharm配置python解释器的问题
2020/10/15 Python
python 用pandas实现数据透视表功能
2020/12/21 Python
matplotlib绘制鼠标的十字光标的实现(内置方式)
2021/01/06 Python
捷克鲜花配送:Florea.cz
2018/10/29 全球购物
计算机网络毕业生自荐信
2013/10/01 职场文书
《盘古开天地》教学反思
2014/02/28 职场文书
搞笑车尾标语
2014/06/23 职场文书
2014年除四害工作总结
2014/12/06 职场文书
关于颐和园的导游词
2015/01/30 职场文书
预备党员个人总结
2015/02/14 职场文书
教师求职自荐信范文
2015/03/04 职场文书
课文《燕子》教学反思
2016/02/17 职场文书
让人瞬间清醒的句子,句句经典,字字如金
2019/07/08 职场文书
七年级作文之英语老师
2019/10/28 职场文书
vue3中provide && inject的使用
2021/07/01 Vue.js