Отладка 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 доступным для сторонних веб-сайтов и позволяет мне поддерживать единую точку входа в развертывание.

Следующая статья описывает мою процедуру обхода:

Сделать GWT Widget Avialble для сторонних сайтов

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.

Другие вопросы по тегам