Отладка GWT внутри фрейма Facebook - PullRequest
1 голос
/ 15 апреля 2010

Я пытаюсь отладить приложение 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 ]

3 голосов
/ 19 июля 2010

Существует проблема межсайтового скриптинга с использованием отладчика 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;
1 голос
/ 06 сентября 2012

У меня похожая проблема для режима развертывания. По сути, я хочу, чтобы мой GWT управлялся из одной точки входа и мог запускать его как виджет на сторонних веб-сайтах, без необходимости загружать мое приложение на свой хост, используя только скрипт селектора в качестве ссылки на мой GWT приложение.

Существует проблема, связанная с этим из-за ограничения SOP текущего процесса начальной загрузки, который использует iframe для асинхронной загрузки скомпилированного скрипта.

Я создал обходную процедуру для этого, пусть приложение GWT будет установлено с использованием 'script' вместо 'iframe'. Это делает мой GWT доступным для сторонних веб-сайтов и позволяет мне поддерживать единую точку входа в развертывание.

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

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

0 голосов
/ 15 апреля 2010

127.0.0.1 - зарезервированный IP-адрес, который всегда разрешается в localhost. Поэтому, когда вы вводите это как URL-адрес холста Facebook, Facebook пытается получить доступ к своим собственным серверам. Запрос никогда не приходит на ваш компьютер, где на самом деле размещается приложение. Конечно, когда вы обращаетесь к нему по адресу 127.0.0.1, он работает нормально, поскольку ваш локальный хост - это ваша собственная машина.

Вам необходимо определить свой внешний IP-адрес и ввести его в качестве URL обратного вызова Canvas. Вы можете проверить настройки своего маршрутизатора или перейти к чему-то вроде http://www.whatismyip.com/.. Получив его, попробуйте получить доступ к своему приложению, используя его напрямую вместо 127.0.0.1. Возможно, вам придется изменить свой маршрутизатор или брандмауэр, чтобы разрешить через порт 8888. Как только он заработает, введите его в качестве URL-адреса обратного вызова Canvas в настройках приложения Facebook.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...