[英]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可用於第三方網站,並讓我維護單個部署入口點。
下面的文章描述了我的解決方法過程:
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.