0

我正在开发 Facebook Canvas 应用程序,根据定义,它将我的应用程序的代码/网页加载到 Facebook 网站上的 iFrame 中。

在开发过程中,我的印象是,如果我从应用程序的网页向与网页完全相同的服务器/域名上的应用程序的 web 服务发出 AJAX 请求,这实际上是一个跨域请求 - 因为最初加载在浏览器(顶部)框架中的页面与我的 Web 服务位于不同的域中。

但是我现在相信,可能是由于我的代码中的错误,我弄错了,iFrame 中的页面可以向与其位于同一域的 URL 发出请求,而不是跨域请求。

澄清这一点对我来说尤其重要,因为我现在相信我实际上可以使用 POST 请求,而不必使用 JSONP GET 请求。

如果有人能为我澄清这一点,我将不胜感激。我四处搜索,找不到关于这种情况的明确声明。

编辑:提供更多说明:我在https://apps.facebook.com/myapp/的 Facebook 应用程序页面 URL 在iF​​rame 中加载我在 www.mydomain.com 的网页。然后,www.mydomain.com 上的网页向 www.mydomain.com 上的网络服务(例如 www.mydomain.com/webservice/)发出 AJAX 请求。那么从我的网页到我的网络服务的请求是否是跨域请求?

干杯马特

4

1 回答 1

1

您在 iframe 中加载的文档仍然是它自己的文档,并且在涉及相同来源策略时,无论它是否显示在框架中,其行为都与任何其他文档一样。

所以是的,您绝对可以向传递您的文档的域发出 AJAX 请求,不管它是否显示在 Facebook.com 上的 iframe 中。

不涉及跨域边界。

于 2012-08-08T07:51:43.447 回答