js跨域问题怎么解决
我在A.html中ifrme了B.html,B.html会调用A.html页面上的js方法(parent.SetChanged())。
A.html上面的js方法如下:
var hasModified=false; function SetChanged() { hasModified = true; }
因为A.html和B.html不在同一个域里,这个跨域问题怎么解决?
这种情况用jsonp是不可取的,
要实现跨域可以有以下这种方式:
在B.html上动态生成一个iframe,内嵌C.html,该iframe的url为域名A(与A.html在同个域名下)的一个url,该url在加载时会执行一段js脚本:parent.parent.SetChanged()。
C.html的parent是B.html,B.html的parent就是A.html,这样就不跨域了。毕业论文
这种方式我们在项目中使用过,在IE8以上和FireFox下是可行的,其他浏览器没测试过,就不敢说了。
不过用jsonp的方式仅是一个get请求,用iframe套c.html,你这种情况又不可能。顶级域名的跨域说实话,我认为是无解的。