사전 승인없이 바로 본 요청을 보내는 방식.

GET, POST, HEAD만 허용Accept, Content-Type (단, application/x-www-form-urlencoded, multipart/form-data, text/plain만 허용)Authorization, User-Agent 등 기본 헤더만 사용 가능Content-Type이 application/json이면 Preflight가 필요 (예외: application/x-www-form-urlencoded는 Simple Request)대체로 REST API가 Content-Type 으로 application/json 을 사용하기 때문에 사실상 지켜지기 어려운 조건이고, 거의 대부분은 Preflight 방식으로 처리한다.
서버에 실제 요청을 보내기 전에, 이 요청이 유효한지(허용되는지)를 판단하는 예비요청을 먼저 보낸후, 허용되었다면 실제 본 요청을 보내는 방식
3-way-handshake처럼 사전에 확인하고 승인하는 절차를 거친다.
Preflight는 서버에게 '이 요청을 보내도 괜찮을까요?'라고 물어보는 SYN 같은 과정이다. 서버가 괜찮다고 응답하면, 클라이언트가 본 요청을 보낸다.
크기가 10000인 큰 데이터를 담아 무작정 요청을 보냈는데, 만약 이 요청이 CORS에 위배되는 요청이라면? 서버의 리소스를 낭비하는 꼴이 된다. 이를 방지하기 위해 먼저 요청을 보내어 유효한지를 판단한 후 본요청을 보낸다.
OPTIONS 메서드로 서버에 요청을 보낸다. (이 요청이 허용되는지를 확인하는 예비 요청)Access-Control-Allow-Origin 등의 헤더로 이 요청이 허용되는지를 응답한다.
X-Auth-Token)Content-Type이 application/json 같은 특정 타입인 경우