https://velog.io/@logqwerty/CORS

이제 좀 이해가 간다.

브라우저에서 preflight request 를 보내면, 서버는 cors 관련 응답을 주고, 통과하면 실제 요청을 보낸다.

simple request 인 경우는 preflight를 보내지 않기 때문에, request 의 origin 헤더가 response의 access-control-allow-origin 에 포함되는 경우에만, 브라우저가 응답을 js 로 넘겨준다. 아니면 브라우저에서 차단. 즉, 서버에서 로그보면서 응답을 보냈다고 해도, cors 설정이 안되어있으면, js 코드에 응답이 안온다.

쿠키를 사용할때는, fetch API에, credentials: ‘include’ 설정을 해야하고, 응답에서 access-control-allow-credentials: true 를 줘야 한다. true가 아니면, 쿠키를 보내지 않음. preflight가 없을때는 요청에 쿠키를 보내지만, 응답을 받았을때 브라우저에서 js로 전달하지 않는다. 그리구, origin: * 로 설정할 수 없다.