繁体   English   中英

在Facebook iframe中调试gwt

[英]Debug gwt inside facebook iframe

我正在尝试调试在Facebook iframe中运行的gwt 2.0应用程序。

当我使用' http://127.0.0.1:8888/index.html?gwt.codesvr=127.0.0.1:9997 '作为“画布回调URL”时,我的应用程序不会加载,但是当我对其进行编译并使用' http ://127.0.0.1:8888 '效果很好。

在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;

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

这样做有一个问题,这是由于当前引导程序的SOP限制,该引导程序使用“ iframe”异步加载已编译的脚本。

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

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

使GWT窗口小部件可用于第三方网站

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

您需要找出您的外部IP地址,并将其作为“画布回调URL”输入。 您可以检查路由器设置,或访问http://www.whatismyip.com/之类的网站 拥有它后,尝试直接使用它而不是127.0.0.1访问它的应用程序。 您可能必须更改路由器或防火墙以允许端口8888通过。 一旦工作,在Facebook应用程序设置中将其作为Canvas回调URL输入。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM