2012-02-21 1 views
4

私は小さなgwtアプリケーションを作ってリリースしましたが、今日は重大な問題が見つかりました。私は同じオリジンポリシーの問題を認識していたので、私はgwt appとrest json appを同じサーバーに配置しました。しかし、明らかにブラウザはhttp://www.xyz.comhttp://xyz.comを同じソースとみなさないので、ユーザーがwww.xyz.comにアクセスしたときには、http://xyz.comからデータを取得することはできません。URLにwwwが入っていてもいなくてもAccess Control-Allow-Originの問題

これはメッセージである:

XMLHttpRequest cannot load http://xyz.com/backend/... 
Origin http://www.xyz.com is not allowed by Access-Control-Allow-Origin. 

これに対処するための最良の方法は何ですか?私はグーグルで見つけた、最初に見つけた.htaccessのソリューションは、tomcatのために動作しません。私は空のランディングページindex.htmlを使って、wwwがないURLにリダイレクトするだけで終わりました。誰かがまだURLを入力して、ページをインデックスに登録しないwwwを入力して、リダイレクトされないようにすることができます。

ご協力いただければ幸いです。

答えて

7

絶対に必要な場合を除いて、アプリでは絶対URLを使用しないでください。

I.e. http://www.example.comからアプリを読み込むことができる場合は、コードに「http://example.com」が含まれている必要があります。

たとえば、いくつかのデータを読み込みたいとします。 http://example.com/abc/defを入力し、コードに"/abc/def"を入力します。"http://example.com/abc/def"ではありません。そうすれば、ブラウザはのいずれかにアプリを読み込みます。http://www.example.comから読み込んだ場合、またはhttp://example.comから読み込んだ場合はhttp://example.com/abc/defに読み込まれます。そして、あなたは同じ起源の政策を打ち負かすことは決してありません。

+0

OK、これです。ありがとうございました。 –

1

ウェブサイトは、単一のサブ/ドメインの下にのみホスティングする必要があります。 http://www.example.comへのすべてのトラフィックはhttp://example.comにリダイレクトする必要があります。

+0

これはいいですね、これを達成する方法として正しい方向に私を指摘できますか? –

+0

ウェブサーバーによって異なります。私はtomcatについては何も知らないが、この質問は助けになるかもしれない:http://stackoverflow.com/questions/1363605/tomcat-base-url-redirection – abraham

+0

ありがとう。質問を投稿する前に解決策を見つけようとしていたときにあなたが言いました質問を見ましたが、ここと同じ問題ではありません。 –

関連する問題