2013-03-16 83 views
4

我使用的是一个网站abc.com,它在123.com上承载iframe页面。
iframe中的页面正在对123.com上的另一个页面发出AJAX请求,但我们看到请求被取消。IFRAME内部的AJAX不能在同一台服务器上工作

除非我错了 - ,我还没有在互联网上找到关于此的任何官方信息 - 由于呼叫不是跨域请求,因此呼叫应该正常工作。

父框架位于不同域的事实是否会阻止iframe对自己的服务器执行AJAX请求?

+0

我们可以在行动中看到它吗? iframe中是否有任何选项?这是发生在一个特定的浏览器? – Tchoupi 2013-03-16 23:13:46

+0

您能否至少复制粘贴完整的错误信息(来自FireBug或开发控制台)以提供更多信息? – hnafar 2013-03-16 23:16:25

+0

可能与SSL有关。我做了一个快速搜索,发现这个 http://stackoverflow.com/questions/10756526/jquery-ajax-call-fails-and-returns-error-on-facebook-iframes – VishwaKumar 2013-03-22 13:19:51

回答

2

IFRAME应该能够对其自己的始发站点(相同的源URL)发出ajax请求。但是,请确保REQUEST事件是从IFRAME,而不是父级。

我的第一个猜测是,你正在加载的IFRAME,然后解决它(触发事件)通过父(JS),以得到它做/获取/设置一些东西,触发一个Ajax调用。简而言之,这是IFRAME域到相同域请求被取消的最可能原因,因为它仍然被浏览器识别为源自目标域代码之外。

请求事件必须有机用户点击位于IFRAME本身触发事件东西在IFRAME或从代码生成。

换句话说:只是因为IFRAME可能触发事件/ AJAX在其JS /代码/从本身的一些能力,它通常会仍然不允许有父引用,AJAX/JS直接通过JS /代码。 IFRAME必须根据其加载参数(可能是URL值)进行编码,否则用户必须在某物上点击/采取措施才能在该域上创建用户生成的事件。

当然,这可能会因浏览器和版本的不同而有所不同,因为您可能会根据父级和iframe之间的交互性进行哄骗。但是一个严格的,最新的浏览器会试图阻止你通过js在iFrame上伪造不安全的交互。

为了得到更好的答案,您需要提供更多关于您正在做/正在做什么的细节。

相关问题