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 相关文章推荐
jquery插件制作 表单验证实现代码
Aug 17 Javascript
javascript面向对象入门基础详细介绍
Sep 05 Javascript
JS事件Event元素(兼容IE,Firefox,Chorme)
Nov 01 Javascript
javascript使用shift+click实现选择和反选checkbox的方法
May 04 Javascript
jQuery+css3实现文字跟随鼠标的上下抖动
Jul 31 Javascript
javascript中的五种基本数据类型
Aug 26 Javascript
javascript常见数字进制转换实例分析
Apr 21 Javascript
最棒的Angular2表格控件
Aug 10 Javascript
基于JavaScript实现瀑布流效果
Mar 29 Javascript
Vue高版本中一些新特性的使用详解
Sep 25 Javascript
微信小程序-API接口安全详解
Jul 16 Javascript
如何在vue中使用HTML 5 拖放API
Jan 14 Vue.js
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
印尼林东PWN黄金曼特宁咖啡豆:怎么冲世界上最醇厚的咖啡冲煮教程
2021/03/03 冲泡冲煮
php FPDF类库应用实现代码
2009/03/20 PHP
php Rename 更改文件、文件夹名称
2011/05/24 PHP
解决PHP4.0 和 PHP5.0类构造函数的兼容问题
2013/08/01 PHP
PHP IE中下载附件问题解决方法
2014/01/07 PHP
php创建session的方法实例详解
2015/01/27 PHP
腾讯CMEM的PHP扩展编译安装方法
2015/09/25 PHP
PHP身份证校验码计算方法
2016/08/10 PHP
基于jquery用于查询操作的实现代码
2010/05/10 Javascript
为jQuery.Treeview添加右键菜单的实现代码
2010/10/22 Javascript
jQuery学习笔记 操作jQuery对象 CSS处理
2012/09/19 Javascript
用js判断页面是否加载完成实现代码
2012/12/11 Javascript
javascript中普通函数的使用介绍
2013/12/19 Javascript
jQuery实现的简单提示信息插件
2015/12/08 Javascript
[原创]jQuery常用的4种加载方式分析
2016/07/25 Javascript
yarn与npm的命令行小结
2016/10/20 Javascript
微信小程序Server端环境配置详解(SSL, Nginx HTTPS,TLS 1.2 升级)
2017/01/12 Javascript
npm 更改默认全局路径以及国内镜像的方法
2018/05/16 Javascript
node.js 微信开发之定时获取access_token
2020/02/07 Javascript
vue路由结构可设一层方便动态添加路由操作
2020/08/31 Javascript
python网络编程学习笔记(五):socket的一些补充
2014/06/09 Python
python中函数默认值使用注意点详解
2016/06/01 Python
Python对列表中的各项进行关联详解
2017/08/15 Python
django-filter和普通查询的例子
2019/08/12 Python
python 使用递归实现打印一个数字的每一位示例
2020/02/27 Python
Python startswith()和endswith() 方法原理解析
2020/04/28 Python
Python中的xlrd模块使用原理解析
2020/05/21 Python
python3.6.5基于kerberos认证的hive和hdfs连接调用方式
2020/06/06 Python
HTML5 层的叠加的实现
2020/07/07 HTML / CSS
毕业实习评语
2014/02/10 职场文书
4S店售后客服自我评价
2014/04/09 职场文书
优秀中职教师事迹材料
2014/08/26 职场文书
2019年作为一名实习生的述职报告
2019/09/29 职场文书
用Python提取PDF表格的方法
2021/04/11 Python
JavaScript实现栈结构详细过程
2021/12/06 Javascript
frg-100简单操作(设置)说明
2022/04/05 无线电