javascript跨域有两种情况:
1、 基于同一父域的子域之间,如:http://a. c. com和http://b. c. com
2、 基于不同的父域之间,如:http://www. a. com 和 http://www. b. com
3、 端口的不同,如:http: //www. a. com: 8080 和 http: //www. a. com: 8088
4、 协议不同,如:http://www. a. com 和 https://www. a. com
对于情况3和4,需要通过后台proxy来解决,具体方式如下:
1、 在发起方的域下创建proxy程序
2、 发起方的js调用本域下的proxy程序
2、proxy将请求发送给接收方并获取相应数据
4、proxy将获得的数据返回给发起方的js
代码和ajax调用一致,其实这种方式就是通过ajax进行调用的
而情况1和2除了通过后台proxy这种方式外,还可以有多种办法来解决:
document.domain+iframe (只能解决情况 1):
1、 在发起方页面和接收方页面设置document. domain,并将值设为父域的主域名
(window. location. hostname)
2、 在发起方页面创建一个隐藏的iframe, iframe的源是接收方页面
3、 根据浏览器的不同,通过iframe. contentDocument | | iframe. contentwindow. document 来获得接收方页面的内容
4、 通过获得的接收方页面的内容来与接收方进行交互
这种方法有个缺点,就是当一个域被攻击时,另一个域会有安全漏洞出现。

Was this helpful?

0 / 0

发表回复 0

Your email address will not be published.