我正在使用一个网站abc.com,它在123.com上托管一个页面的iframe.
iframe中的页面正在向123.com上的另一个页面发出 AJAX请求,但我们看到请求被取消了.
iframe中的页面正在向123.com上的另一个页面发出 AJAX请求,但我们看到请求被取消了.
除非我错了 – 我在互联网上没有找到任何关于此的官方信息 – 这个电话应该可以正常工作,因为它不是跨域请求.
父帧是否在不同的域上的事实是否会阻碍iframe对其自己的服务器执行AJAX请求?
解决方法
IFRAME应该能够向其自己的始发站点(相同的源URL)发出ajax请求.但是,请确保IFRAME中的REQUEST事件是FIRED,而不是父项.
我的第一个猜测是你正在加载IFRAME然后通过父(JS)解决它(触发一个事件)来让它做/获取/设置触发ajax调用的东西.简而言之,这是IFRAME域到同一域请求被取消的最可能原因,因为它仍然被浏览器识别为源自目标域代码之外.
REQUEST事件需要通过用户点击IFRAME中的内容或IFRAME本身触发事件的代码来有机生成.
换句话说:仅仅因为IFRAME可能具有在其JS /代码中触发事件/ ajax的能力,通常仍然不允许通过JS /代码直接获得ajax / JS的父引用. IFRAME必须已根据其加载参数(可能是URL值)进行编码,或者用户必须对某些内容进行物理点击/采取操作才能在该域上创建用户生成的事件.
当然,根据浏览器和版本的不同,您可以根据父和iframe之间的交互性来哄骗.但是,一个严格的,最新的浏览器将试图阻止您通过js伪造iFrame上的不安全交互.
为了获得更好的答案,您需要提供有关您正在做什么/获得的更多详细信息.