1

サードパーティが自分の Web サイトにインポートする必要がある 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>

サードパーティは、上記のコンテンツを Web サイト (完全に異なるドメイン) にインポートするためだけに、何らかのインポート メカニズム (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
4

1 に答える 1

1

問題は同一生成元ポリシールールに関連しているようです。cssファイルとjavascriptファイルが異なるポート(8888と80)から公開されています。cssファイルのポートを80に変更すると、前のエラーは発生しないと思います。

于 2011-02-07T15:54:03.653 に答える