Подскажите пожалуйста. Есть CORS фильтр:
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin")!=null?request.getHeader("Origin"):request.getHeader("Referer"));
//response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Methods", "*");
response.setHeader("Access-Control-Max-Age", "3600");
response.setHeader("Access-Control-Allow-Credentials", "true");
response.setHeader("Access-Control-Allow-Headers", "key, time, referer, origin, Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers");
chain.doFilter(req, res);
С другого сайта делается AJAX запрос на сервер. Проблема в том что Origin, Referer = null. Почему? Вкладка Network, в хроме, показывает что эти хидеры уходят.
Если же я выставлю
response.setHeader("Access-Control-Allow-Origin", "*");
То мне вылетает ошибка:
The value of the 'Access-Control-Allow-Origin' header in the response must not be the wildcard '*' when the request's credentials mode is 'include'
Хотя Access-Control-Allow-Credentials стоит в true.
UPDATE
Проверил в опере - ошибки нет. В хроме почему-то ошибка.
UPDATE 2
В хроме было включено расширение VPN. При его отключении всё наладилось.
Что интересно что в опере был включен VPN и всё было нормально. Почему с расширением так?
Продвижение своими сайтами как стратегия роста и независимости