【Javascript】利用document.domain解决子域跨域访问问题
- 在主页面(位于mivkit.com中)通过隐藏的iframe嵌套子页面(内容位于www.mivkit.com)
- 在主页面中设置document.domain="www.mivkit.com";
- 在子页面中设置document.domain="www.mivkit.com";
- 在主页面和子页面中可以相互访问内容了;需要跨域访问其他内容,可以通过在对应页面上发请求完成取回数据然后进行对应操作
根据浏览器安全策略,不同域名(比如mivkit.com和www.mivkit.com)、不同协议(比如https://www.mivkit.com和https://www.mivkit.com)、不同端口(比如https://www.mivkit.com和https://www.mivkit.com:8088)之间的页面不能相互访问,包括XMLHTTPRequest方式和Javascript的页面访问。
有一个例外是:在相同根域、相同协议、相同端口的情况下,可以利用设置document.domain方式来解决不同子域的跨站访问问题。
举个例子,想在mivkit.com中,访问www.mivkit.com域名下的内容,需要以下几步来完成:
P.S. 补充几点:
1、document.domain可以由子域www.mivkit.com修改为主域mivkit.com,而不能由mivkit.com修改为www.mivkit.com(不是所有浏览器都支持)。
2、不同根域、或不同协议、或不同端口之间的跨域访问只能通过服务器断的代理程序来解决了。
3、详细的示例见参考文档:
标签: Javascript
比较高难度的了。。
不同域名之间的跨域还是很难解决吧。