corsFilter() fetch 요청 파라미터 해당 사진은 POST이며 GET도 동일하게 credentials: 'include', 추가되어있습니다 나머지 put patch del 경우 url option을 파라미터로 받아 같은 post를 호출하게 되어있습니다 springBootVersion '2.0.1.RELEASE' java 1.8 jboss 사용 환경 : 로컬호스트에서는 해당 문제가 발생하지 않지만 배포된 서버에서 테스트시 해당 문제 발생 문제 : 컨트롤러에 @PostMapping("/???") 특정 하나의 메소드 호출시 CORS 에러발생 저장버튼 클릭시 업로드된 파일을 로컬 경로에 업로드 하고 / 이후 해당 행을 DB에 저장하는 쿼리를 요청하는 메소드입니다 신규 추가시 파일을 업로드하고 행을 저장 시 이상 없이 저장이 되는데 이미 존재하는 행에 저장버튼 클릭시 에러가 발생합니다 로컬과 차이 : 로컬에서 확인되는 응답헤더에 Access-Control-Allow-Credentials, Access-Control-Allow-Origin 이 2개의 헤더가 서버에서는 반환되지 않습니다 에러 메시지 : Access to fetch at '요청URL' from origin '오리진URL' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled. POST http://0.00.000.000:4022/??? net::ERR_FAILED 500 (Internal Server Error) Uncaught (in promise) Error: File upload failed. Please try again later. 비고: config.setAllowCredentials(true); 와 config.addAllowedOrigin("*"); 를 함께 쓸 수 없다고 하여 명시적으로 선언도 해주었고 클라이언트단에서 credentials: 'include', 도 추가해주었지만 해결되지 않고 정확한 문제파악조차 되지 않아 질문드립니다
만약 앞단에 Nginx를 쓰고 있다면, Nginx에서 CORS 설정을 한 경우에 스프링부트까지 요청이 오기 전에 Nginx에서 먼저 CORS 헤더 처리가 되었을 수도 있습니다. 즉, 스프링부트에서 CORS 설정을 한다면 Nginx의 CORS 설정을 빼야할 수도 있습니다.
무린·2025-01-22
올려주신 내용으로 보았을 때, 서버에서 500 에러가 발생하면서 CORS 헤더가 응답에 추가되지 않았을 가능성이 높은 것 같습니다. 500 Internal Server Error가 발생하는 것은 CORS 설정과는 상관없이 서버측의 오류로 발생하는 에러입니다. 이 에러가 발생하면서 CORS 헤더가 응답에 추가되지 않기 때문에 CORS 에러 메시지도 같이 보여...