簡體   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