powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Получение данных с удаленного ресурса.
14 сообщений из 14, страница 1 из 1
Получение данных с удаленного ресурса.
    #39095795
wvetal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть 2 приложения:
1е (на Spring + AngularJS) берет ресурсы со второго приложения(сервера).

1е запускаю (пока) на localhost:8080
2е - localhost:9000

Работает только в Safari, на Хроме, ФФ, Опере - ресурсы не подтягиваются.

Ошибка:
Запрос из постороннего источника заблокирован: Политика одного источника запрещает чтение удаленного ресурса на http://localhost:9000/. (Причина: неудача канала CORS preflight).

CorsFilter.java:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
	@Override
	public void doFilter(ServletRequest req, ServletResponse res,
			FilterChain chain) throws IOException, ServletException {
		
		HttpServletResponse response = (HttpServletResponse) res;
		HttpServletRequest request = (HttpServletRequest) req;
		response.setHeader("Access-Control-Allow-Origin", "*");
		response.setHeader("Access-Control-Allow-Methods", "POST, PUT, GET, OPTIONS, DELETE");
		response.setHeader("Access-Control-Allow-Headers", "x-auth-token, x-requested-with");
		response.setHeader("Access-Control-Max-Age", "3600");
		if (request.getMethod()!="OPTIONS") {
			chain.doFilter(req, res);
		} else {
		}
		
	}


Клиентская часть:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
.controller('home', function($scope, $http) {
  $http.get('token').success(function(token) {
    $http({
      url : 'http://localhost:9000',
      method : 'GET',
      headers : {
        'X-Auth-Token' : token.token
      }
    }).success(function(data) {
      $scope.greeting = data;
    });
  })
})


В какую сторону смотреть (что исправить), чтоб работало не только в Safari?
...
Рейтинг: 0 / 0
Получение данных с удаленного ресурса.
    #39095803
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AFAIK, на localhost может вообще не заработать. Я просто на локальный IP в host два имени завел.
Ну, CorsFilter уж больно простоват.
Можно взять томкатовский
https://tomcat.apache.org/tomcat-7.0-doc/api/org/apache/catalina/filters/CorsFilter.html

Либо его копипасту
https://github.com/eBay/cors-filter/blob/master/src/main/java/org/ebaysf/web/cors/CORSFilter.java
...
Рейтинг: 0 / 0
Получение данных с удаленного ресурса.
    #39095806
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И ещё с CORS много возни. Я бы подумал над тем как на под-домены перевести по-возможности.
...
Рейтинг: 0 / 0
Получение данных с удаленного ресурса.
    #39095829
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,
+1
...
Рейтинг: 0 / 0
Получение данных с удаленного ресурса.
    #39096665
wvetal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczAFAIK, на localhost может вообще не заработать. То есть, если вместо localhost прописать ip (например, в браузере - http://10.0.0.10:8080/, а на клиенте - url : 'http://10.0.0.10:9000',), должно заработать?
Попробовал так - все равно получаю:
Запрос из постороннего источника заблокирован: Политика одного источника запрещает чтение удаленного ресурса на http://localhost:9000/. (Причина: неудача канала CORS preflight).
...
Рейтинг: 0 / 0
Получение данных с удаленного ресурса.
    #39096695
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wvetal,
тебе же сказали - поддомен.
Порт другой - тоже другое приложение и междоменный запрос.
...
Рейтинг: 0 / 0
Получение данных с удаленного ресурса.
    #39096711
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wvetal,
почем поддомен не хочешь?
Часто имеют сайт domen.ru и форум - forum.domen.ru.
Как пример.
...
Рейтинг: 0 / 0
Получение данных с удаленного ресурса.
    #39096715
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wvetalТо есть, если вместо localhost прописать ip (например, в браузере - http://10.0.0.10:8080/, а на клиенте - url : 'http://10.0.0.10:9000',), должно заработать?
А почему вы берете во внимание только одну часть ответа? Да, ещё и применяете к ней не корректную логику. Я имею ввиду, что даже когда всё правильно настроено, CORS для localhost может не работать. Это совершенно не значит, что избавившись от localhost вы всё исправите
...
Рейтинг: 0 / 0
Получение данных с удаленного ресурса.
    #39096857
vas0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wvetal,

вообще само условие request.getMethod()!="OPTIONS" вызывает вопросы , лучше уж !"OPTIONS".equals(request.getMethod())
...
Рейтинг: 0 / 0
Получение данных с удаленного ресурса.
    #39098496
wvetal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123почем поддомен не хочешь?
1 - Хочу разобраться(научиться) как это делать на разных доменах(не поддоменах).
2 - Если будет ситуация, когда одни и те же данные нужно передать разным приложениям на разных доменах.
...
Рейтинг: 0 / 0
Получение данных с удаленного ресурса.
    #39104630
wvetal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
... а все же, можно без поддомена решить эту проблему?
Чтоб с другого домена тянуть данные, и чтоб не возникало "(Причина: неудача канала CORS preflight)" ?
...
Рейтинг: 0 / 0
Получение данных с удаленного ресурса.
    #39104645
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wvetal... а все же, можно без поддомена решить эту проблему?
Можно.

wvetalЧтоб с другого домена тянуть данные, и чтоб не возникало "(Причина: неудача канала CORS preflight)" ?
Вот это хотя бы прочитано?
https://en.wikipedia.org/wiki/Cross-origin_resource_sharing#Preflight_example
Возьми нормальный готовый CorsFilter и используй его вместо своей поделки.
...
Рейтинг: 0 / 0
Получение данных с удаленного ресурса.
    #39104766
Selesta_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wvetal, я экранировала порт, и заработало https://gyazo.com/85f5cced41b9dc9425625b90e9970e42
...
Рейтинг: 0 / 0
Получение данных с удаленного ресурса.
    #39105654
wvetal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczВозьми нормальный готовый CorsFilter и используй его вместо своей поделки.Blazkowicz https://github.com/eBay/cors-filter/blob/master/src/main/java/org/ebaysf/web/cors/CORSFilter.java Спасибо. Все заработало.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Получение данных с удаленного ресурса.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]