在漫长的前端开发旅途上,无可避免的会接触到ajax,而且一般情况下都是用在同一域下的ajax请求;但是如果请求是发生在不同的域下,请求就无法执行,并且会抛出异常提示不允许跨域请求,目前我没有找到明确的资料说明这是为什么,我觉得应该是出于安全性的考虑吧。纵然如此,要实现跨域访问的话,方法还是有的,而且不只一种,在这里介绍其中一种解决方案:如何利用ifr a me完成ajax的跨域请求。
如下图所示:域a.com的页面request.html(即http://a.com/request.html
大家都知道,在不同域的情况下是不能发送ajax请求的,浏览器会报如下错误:
同时,内嵌的ifr a me中无法进行跨域通信的,也就是说不同域的ifr a me是无法互相读取数据的(当然利用hash变化可以从父window传入数据到子ifr a me,不过并没有什么意义)。ifr a me跨域通信时,浏览器会报如下错误:
其实这两个问题都是由于跨域造成的。
下面就介绍如何解决这个问题。
其实问题的关键就在于,浏览器在解析ajax请求地址时会和当前网页的地址进行比较,如果是跨域的,那就禁止掉并且