JQuery Ajax 跨域访问的解决方案

路的人生512

路的人生512

2016-02-19 13:33

有一种朋友不在生活里,却在生命力;有一种陪伴不在身边,却在心间。图老师即在大家的生活中又在身边。这么贴心的服务你感受到了吗?话不多说下面就和大家分享JQuery Ajax 跨域访问的解决方案吧。
具体情况有:
一、本域和子域的相互访问: 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

代码如下:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)
var ojb = {msg:'js跨域请求成功'};

然后在aa.com的页面上使用$.getScript加载test.js脚本

代码如下:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)
$(function() {
$.getScript('http://www.bb.com/test.js', function() {
if (ojb) {
alert(obj.msg);
}
});
});

使用$.getScript函数的最大好处就是可以保证,脚本加载完毕后调用回调函数。
个人感觉这种方法比使用代理和iframe要简单一些。
展开更多 50%)
分享

猜你喜欢

JQuery Ajax 跨域访问的解决方案

Web开发
JQuery Ajax 跨域访问的解决方案

ajax跨域访问的解决方案

Web开发
ajax跨域访问的解决方案

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

解决AJAX 跨域访问完整解决方案

Web开发
解决AJAX 跨域访问完整解决方案

AJAX javascript的跨域访问执行

Web开发
AJAX javascript的跨域访问执行

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

成功实现ajax xmlhttp跨域访问

Web开发
成功实现ajax xmlhttp跨域访问

成功实现ajax,xmlhttp跨域访问

Web开发
成功实现ajax,xmlhttp跨域访问

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Ubuntu用户无法使用sudo命令该如何解决?

Ubuntu用户无法使用sudo命令该如何解决?

文件系统控件的使用二

文件系统控件的使用二
下拉加载更多内容 ↓