调试gwt里面的Facebook iframe

调试gwt里面的Facebook iframe

问题描述:

我想调试我的GWT 2.0 apllication在Facebook内运行iframe。调试gwt里面的Facebook iframe

当我使用'Canvas Callback URL'作为'http://127.0.0.1:8888/index.html?gwt.codesvr=127.0.0.1:9997'我的应用程序不加载,但是当我编译它并使用'http://127.0.0.1:8888'它完美的工作。

127.0.0.1是始终解析为localhost的保留IP地址。所以当你把它作为Facebook的画布URL输入时,Facebook会尝试访问它自己的服务器。请求永远不会进入您的计算机,这是实际托管应用程序的位置。当然,当访问它在127.0.0.1,它工作正常,因为你的本地主机是你自己的机器。

您需要计算出您的外部IP地址,并将其输入为Canvas回调URL。你可以检查你的路由器设置,或者去http://www.whatismyip.com/之类的东西。一旦拥有它,请直接使用它而不是127.0.0.1来访问你的应用程序。您可能必须更改您的路由器或防火墙以允许端口8888通过。一旦你有它的工作,输入它作为你的Facebook应用程序设置中的Canvas回调URL。

+0

我用http://127.0.0.1:8888作为画布回调URL和它的作品,所以我的东西有什么用GWT调试服务器。此外,我用萤火虫来检查从Facebook调用什么请求,我得到: GET请求''http://127.0.0.1:8888/index.html?gwt.codesvr=127.0.0.1:9997(与其他facebook参数)返回我的应用程序index.html。但gwt不加载。 当我粘贴上面的url直接浏览器我的应用程序启动成功,并且萤火虫显示有多一个请求 http://127.0.0.1:8888/myapp/hosted.html?myapp – 2010-04-15 15:58:10

+1

也这有助于设置P3P头 http://www.tomred.net/java-tomcat-set-expires-headers.html 刚刚替补 ((HttpServletResponse的)响应).addHeader( “P3P”, “CP = HONK”); // P3P:CP = HONK – alexl 2012-05-13 22:16:19

+0

这个答案是错误的:Javascript是在客户端而不是在服务器上执行的,因此'localhost'或'127.0.0.1'就是指客户端自己的主机,而不是服务器。 – 2012-05-15 17:55:56

在facebook iframe中使用GWT调试器存在跨站点脚本问题。 我登录这是问题#4468 http://code.google.com/p/google-web-toolkit/issues/detail?id=4468

在这一票,我指定的解决方法是编辑正是如此的hosted.html文件:

hosted.html 
gwtOnLoad = function(errFn, modName, modBase){ 
.... 
    var topWin = window.top; 
    var url = topWin.location.href; 
... 

Workaround if you have one: 

    var topWin = window; 
    var url = topWin.location.href; 
+0

这个错误仍然存​​在:-( – 2012-05-15 17:56:22

我有一个类似的问题的部署模式。基本上我希望我的GWT可以从单个入口点部署进行管理,并且能够在第三方网站上将其作为小部件运行,而不必将我的应用程序下载到他们的主机中,只使用选择器脚本作为我的GWT的参考应用程序。

由于当前引导进程的SOP限制使用“iframe”异步加载编译的脚本,因此存在一个问题。

我为此创建了一个解决方法过程,让GWT应用程序使用'脚本'而不是'iframe'进行安装。这使我的GWT可用于第三方网站,并让我保持单一的部署入口点。

下面的文章描述我的解决方法过程:

Make GWT Widget Avialble For 3'rd party websites

+0

这似乎是一个无关的问题。 – 2012-09-24 04:59:53