我正在开发一个Facebook Canvas应用程序,根据定义,它可以在Facebook网站上的iFrame中加载我的应用程序的代码/网页。
在开发过程中,我得到的印象是,如果我从我的应用程序的网页发出一个AJAX请求到我的应用程序的web服务,该服务与网页的服务器/域名完全相同,那实际上这在技术上是一个跨域请求 - 因为最初加载在浏览器(顶部)框架中的页面与我的webservice位于不同的域中。
但是我现在相信,由于我的代码中的错误,我错了,iFrame中的页面可以向同一域中的URL发出请求,而不是跨域请求。
澄清这一点对我来说尤其重要,因为我现在相信我可以实际使用POST请求而不必使用JSONP GET请求。
如果有人能为我澄清这一点,我将非常感激。我有搜索,无法在这种情况下找到明确的声明。
编辑:提供更多说明:https://apps.facebook.com/myapp/的我的Facebook应用页面网址在iFrame中加载我的网页www.mydomain.com。然后,www.mydomain.com上的网页向www.mydomain.com上的网络服务发出AJAX请求(例如www.mydomain.com/webservice/)。那么从我的网页到我的网络服务的请求是否是跨域请求?
干杯 马特
答案 0 :(得分:1)
在iframe中加载的文档仍然是它自己的文档,并且在涉及相同的原始策略时,其行为与任何其他文档一样,无论是否显示在框架中。
所以,是的,您绝对可以向您的文档传递的域发出AJAX请求,而不是它在Facebook.com上的iframe中显示。
没有跨越域边界。