Отладка gwt внутри фрейма Facebook
Я пытаюсь отладить приложение gwt 2.0, которое работает внутри iframe в Facebook.
Когда я использую " http://127.0.0.1:8888/index.html?gwt.codesvr=127.0.0.1:9997" в качестве "URL-адреса обратного вызова Canvas", мое приложение не загружается, но когда я компилирую его и использую " http://127.0.0.1:8888/'работает отлично.
3 ответа
Существует проблема межсайтового скриптинга с использованием отладчика GWT в iframe facebook. Я зарегистрировал это как проблему # 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 будет установлено с использованием 'script' вместо 'iframe'. Это делает мой GWT доступным для сторонних веб-сайтов и позволяет мне поддерживать единую точку входа в развертывание.
Следующая статья описывает мою процедуру обхода:
127.0.0.1 - это зарезервированный IP-адрес, который всегда разрешается в localhost. Поэтому, когда вы вводите это как URL-адрес холста Facebook, Facebook пытается получить доступ к своим собственным серверам. Запрос никогда не поступает на ваш компьютер, где находится приложение. Конечно, когда вы получаете доступ к нему на 127.0.0.1, он работает нормально, потому что ваш localhost - это ваша собственная машина.
Вам нужно выяснить свой внешний IP-адрес и ввести его в качестве URL обратного вызова Canvas. Вы можете проверить настройки роутера или перейти на что-то вроде http://www.whatismyip.com/. Если у вас есть это, попробуйте получить доступ к вашему приложению, используя его напрямую, а не 127.0.0.1. Возможно, вам придется изменить свой маршрутизатор или брандмауэр, чтобы разрешить через порт 8888. Как только он заработает, введите его в качестве URL-адреса обратного вызова Canvas в настройках приложения Facebook.