恶心的IE6 跨域解决方案

两天做项目在生产环境遇见一个非常恶心的跨域问题!那就是IE6下的,不过只是个别IE6b版本有问题。
问题描述:
从一页面(html)跳转到另一页面(html),由于本页面要从后台动态的取得数据而后放入select框中,问题就出来了, 从后台取数据也能去得到(用httpwatch下已经看到数据传到前台了) 数据名称定义为“data“,当第一次使用的使用IE6的个别版本会出现“data未定义“。当刷新页面后就不再出现这样的问题。 (2)当复制本页面的链接新打开一窗口亦不会出现”data未定义“。经过观察只要是从前一个页面跳转到本页面在IE6(个别版本)就会出现此问题。

解决方案:
1:使用jquery.getJSON (亦可以解决跨域问题)经过多次试验不能解决此问题。
2:使用jquery.getScript(亦可以解决跨域问题)经过多次试验不能解决此问题,效果同jquery.getJSON

3:document.domain + iframe.get 搞定!!!

方案细节:很多网友的博客中都有解释,本人亦是参考别人的结合自己经历修改而来。
( 1: 在本页面声明 document.domain = "18110.cn";(为一级域名 不可为 “www.18110.cn”)在页面中加入<iframe src="http://second.18110.cn" id="cross" style="display:none;"></iframe>
( 2:在需要跨域的域名下加入 “cross.html”用于欺骗浏览器使用
内容细节
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>用document.domain+iframe实现Ajax跨子域</title>
</head>
<script type="text/javascript" src="jquery1.4.js"></script>
<script type="text/javascript">
document.domain = 18110.cn';
</script>
<body>
</body>
</html>
(3 var iframe=document.getElementById('iframe').contentWindow.jQuery;
iframe.get(url,function(data){……);
接下来就可以对data操作了!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值