Access-Control-Allow-Origin проблема с и без www в URL - PullRequest
5 голосов
/ 21 февраля 2012

Я сделал небольшое приложение gwt и выпустил его, но сегодня обнаружил серьезную проблему. Я знал об одной и той же проблеме политики происхождения, поэтому я поместил мое приложение gwt и остальные приложения json на один и тот же сервер. Но, видимо, браузеры не рассматривают http://www.xyz.com и http://xyz.com как один и тот же источник, поэтому, когда пользователь попадает на www.xyz.com, он не может получить данные от http://xyz.com.

Это сообщение:

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

Какой лучший способ справиться с этим? Я гуглил и впервые нашел решение .htaccess, которое не работает для tomcat. В итоге я использовал пустую целевую страницу index.html с перенаправлением только на URL без www в нем. Это не лучшее решение, потому что кто-то все еще может ввести URL с www, который не будет индексировать страницу, поэтому он не будет перенаправлен.

Любая помощь будет оценена.

Ответы [ 2 ]

7 голосов
/ 21 февраля 2012

Вы не должны использовать абсолютные URL-адреса в своем приложении, если это не является абсолютно необходимым.

т.е. в вашем коде должно быть "http://example.com"", если приложение можно загрузить с http://www.example.com.

Например, если вы хотите загрузить некоторые данные, например, из http://example.com/abc/def, затем введите "/abc/def" в ваш код, не "http://example.com/abc/def". Таким образом, браузер разрешит URL либо http://www.example.com/abc/def, если приложение было загружено из http://www.example.com,, либо http://example.com/abc/def, если оно было загружено из http://example.com. И Вы никогда не рискуете попасть в Политику единого происхождения.

2 голосов
/ 21 февраля 2012

Веб-сайт следует размещать только под одним суб / доменом. Весь трафик на http://www.example.com должен быть перенаправлен на http://example.com или наоборот.

...