lovestory
632
2020-02-03 10:24:18 작성 2020-02-03 10:26:00 수정됨
3
1057

[SPRING] CORS에러!!! 도대체 무엇이 문제일까요!!!


Access to XMLHttpRequest at 'http:/----:5191/oauth/token' from origin 'http://localhost:3000' has been blocked by CORS policy: Request header field access-control-allow-origin is not allowed by Access-Control-Allow-Headers in preflight response.


Error: Network Error

    at createError (createError.js?2d83:16)

    at XMLHttpRequest.handleError (xhr.js?b50d:81)


CORS 에러를 마주쳤습니다.


머 쉽게 해결할수 있을거 같습니다.


로그인쪽 문제인데요. 인증서버가 자체적으로 되어 있는 상태입니다.


SPRING + security + JWT 입니다.


단순히 Filter 구현되는 클래스에 



response.setHeader("Access-Control-Allow-Origin", "*");
	    response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE, PATCH, PUT");
	    response.setHeader("Access-Control-Max-Age", "3600");
            response.setHeader("Access-Control-Allow-Credentials", "true");
	    response.setHeader("Access-Control-Allow-Headers", "Origin, Accept, x-requested-with, authorization, Content-Type, Authorization, credential, X-XSRF-TOKEN ");

이렇게 추가하면 단순하게 해결할줄 알았습니다....


그런데도 같은 문제가 발생하더군요...


도대체 어디를 수정해야 할까요.?



0
  • 답변 3

  • e편한세상
    464
    2020-02-03 11:01:47 작성 2020-02-03 11:11:58 수정됨

    필터를 인증서버에 적용하신건가요?

    혹시 로컬서버에 적용하신게 아닌가 해서요;

  • gwk
    441
    2020-02-03 11:07:55

    실제 request, response를 올려주시면 문제를 찾는데 도움이 될것같습니다.

  • John Suhr
    4k
    2020-02-03 12:13:40 작성 2020-02-03 12:14:47 수정됨

    preflight가 없네요.

    if (HttpMethod.OPTIONS.name().equalsIgnoreCase(req.getMethod()) {
        res.setStatus(HttpServletResponse.SC_OK);
        return;
    }

    setHeader 뒷부분에 넣으시면 됩니다.

  • 로그인을 하시면 답변을 등록할 수 있습니다.