今儿个在开发项目时,IE下出现了跨域问题(Chrome下就没有),IE真蛋疼啊,为了解决这个问题,google也google了,百度也百度了,还是没能解决,找到一些解决方案都是说加入P3P协议之类,没辙了。
后来自个儿想办法,不就是用Location.href导致的嘛,那我就越过location.href连接到外链地址,我就用一个代理页面来处理显示外链地址的页面。在代理页面中我用iframe来显示外链的页面,这样就避免了location.href的跨域问题。只需要把外链地址当作一个参数传到代理页面来并用iframe显示就OK了,这下怎么测试都不会存在跨域了。
我是用的springmvc,连接地址的写法是:proxy.do?url=http://www.baidu.com。
proxy.do是跳转到代理页面并把url外链地址参数传入到这个页面。以下是代理页面的代码:
<%@page contentType="text/html;charset=UTF-8" trimDirectiveWhitespaces="true"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>代理页面(外链地址 解决ie的跨域问题)</title>
<style type="text/css">
<!--
html, body {
height:100%;
}
-->
</style>
</head>
<body style="overflow: hidden;">
<!-- 主体 start -->
<div style="width: 100%;height:100%">
<iframe name="contentFrame" id="contentFrame" src="${url}"
style="margin: 0px;" frameborder="0" width="100%" height="100%"></iframe>
</div>
<!-- 主体 end -->
</body>
</html>
作者:Tandaly
出处:http://blog.csdn.net/tandaly/article/details/9365135