2016-10-12 3 views
1

Я пытаюсь отправить HTTP POST на моем сервер, я делаю это таким образом:Отказался установить небезопасный заголовок «контроль доступа-запрос-заголовки» угловые 2

var headers = new Headers({ 'Access-Control-Request-Headers': "Content-Type", 'Content-Type': 'application/json'}); 
let options = new RequestOptions({ headers: headers }); 
console.log(JSON.stringify(library) + " " + SERVER + "/library"); 
this.http.post(SERVER + "/library", JSON.stringify(library), options) 
    .subscribe(data => {console.log(data.json())}); 

, но я получение Refused to set unsafe header "access-control-request-headers" погрешность. Если я отправлю POST без 'Access-Control-Request-Headers': "Content-Type", я получаю Request header field content-type is not allowed by Access-Control-Allow-Headers in preflight response. кто-нибудь знает, как решить эту проблему? Заранее спасибо.

+0

настроить параметры сервера CORS. Добавьте 'Content-Type' в' Access-Control-Allow-Headers' –

+0

Но я сделал. У меня есть заголовки в параметре 'options'. –

+0

Это необходимо настроить на сервере, а не в Angular2. –

ответ

1

Я решил эту проблему, добавив следующий код на стороне сервера:

public class CORSFilter implements Filter { 

    public void doFilter(ServletRequest req, ServletResponse res, 
      FilterChain chain) throws IOException, ServletException { 
     HttpServletResponse response = (HttpServletResponse) res; 
     response.setHeader("Access-Control-Allow-Origin", "*"); 
     response.setHeader("Access-Control-Allow-Methods", "POST, GET, PUT, OPTIONS, DELETE"); 
     response.setHeader("Access-Control-Max-Age", "3600"); 
     response.setHeader("Access-Control-Allow-Headers", "x-requested-with, content-type"); 
     chain.doFilter(req, res); 
    } 

    public void init(FilterConfig filterConfig) { 
    } 

    public void destroy() { 
    } 

} 

Спасибо, Günter Zöchbauer

+0

Эй, Сергею нужна твоя маленькая помощь, я застрял с той же проблемой. – HardikT

+0

Привет, не могли бы вы уточнить, что именно вам нужно? Как я уже писал, я только что добавил некоторую конфигурацию на стороне сервера, и она решила мою проблему. –

+1

В основном я пытаюсь решить проблему CORS. Первоначально я получал ошибку ** No 'Access-Control-Allow-Origin' **. Затем я добавил * allow-headers * на стороне сервера и * request-headers * на стороне клиента. Теперь я получаю ошибку ** Отказался от установки небезопасного заголовка «Access-Control-Request-Header» ** Я добавил ваш код в свой java-файл, но я получаю ошибки, добавили ли вы какие-либо зависимости в pom.xml, если да , тогда что? – HardikT

Смежные вопросы