关于document.domain+iframe实现跨子域名

昨天要做一个网站的二次开发 需要实现子域名功能 通过地址重写实现后 发现ajax出现的跨域问题 不想改动太大于是采用了document.domain+iframe的方式

首先在头模板中的head内添加

document.domain='123.com'

在body下添加隐藏iframe

<iframe id='iframe' style='display:none' src='a.htm'></iframe>

其中a.htm的内容为

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript">
document.domain = '123.com';
</script>

找到原来调取ajax的地方 例如 原来一处为

$.post(.....)

那么我们改为

var iframe=document.getElementById('iframe').contentWindow;

iframe.window.jQuery.post(.....)

GET方式的同理

 

这里说几个注意的细节

1、如果你的ajax发送的url是相对定位的 比如只写了个index.php 那么他相对的是a.htm所在的位置 而不是你发起ajax的文件位置

2、$(document).ready(function(){}) 中的ajax要注意 这里要改成iframe的加载完成事件 即改为 $("#iframe").load(function(){})

转载于:https://www.cnblogs.com/pl-blog/archive/2013/04/25/3041887.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值