запуск приложения GWT с удаленного компьютера - PullRequest
1 голос
/ 07 февраля 2011

Я разрабатываю какое-то приложение GWT, которое нужно будет импортировать какой-то третьей стороне на его собственный сайт.

Приложение, которое я разрабатываю, размещено на моей машине и имеет адрес: http://myMachine.com/app/gwtApp.html

приложение выглядит так:

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">

<link type="text/css" rel="stylesheet" href="http://myMachine.com:8888/app/gwtApp.css">
<title>gwtApp</title>
<script language="javascript" src="http://myMachine.com:8888/app/gwtApp/gwtApp.nocache.js"></script>
</head>
<body>
<div id="app" style="width:240px; height:190px;"></div>
</body>
</html>

ПРИМЕЧАНИЕ. Я написал некоторый прокси-сервлет, чтобы снова разрешить URL-адрес моего сервера, как вы знаете, тег скрипта, приведенный выше, по умолчанию выглядит так: <script language="javascript" src="app/gwtApp/gwtApp.nocache.js"></script>, но мой прокси преобразовал его в: <script language="javascript" src="http://myMachine.com/app/gwtApp/gwtApp.nocache.js"></script>

Сторонние поставщики используют некоторый механизм импорта (импорт jstl или любой другой) просто для импорта вышеуказанного контента на свой веб-сайт (в совершенно другом домене)

Проблема в том, что они получают следующую ошибку JS и ничего не отображается из приложения:

Error: Permission denied for <http://172.16.0.87:8888> to get property Window.document from <http://thrid-party_domain.com>.
Source File: http://myMachine.com/app/gwtApp/37A4800286E685E7555FF8DCA66FC4F9.cache.html
Line: 1

Error: Permission denied for <http://myDomain:8888> to get property Window.gwtApp from <http://thrid-party_domain.com>.
Source File: http://myMachine.com/app/gwtApp/37A4800286E685E7555FF8DCA66FC4F9.cache.html
Line: 1463

1 Ответ

1 голос
/ 07 февраля 2011

Похоже, проблема связана с тем же правилом происхождения правилом. Ваш файл CSS и JavaScript был опубликован с другого порта: 8888 и 80. Если вы измените порт файла CSS на 80, я думаю, что вы не получите предыдущую ошибку

...