error - cors error(lambda)

doohyunlm·2021년 7월 27일
3

error

목록 보기
2/10
post-custom-banner

목차


  1. 오류 원인
    1-1. S3을 사용하여 정적 호스팅을 하는 경우
    1-2. lambda의 호출 경로에 절대 경로로 표시한 경우
    1-3. 코드 내에서 cors 허용을 열어주지 않은 경우(nodejs)
  2. 해결방법
  3. 마치며




1. 오류 원인




1-1. S3을 사용하여 정적 호스팅을 하는 경우


  • S3 cors 설정을 하지 않았을 시 cors 에러를 표출하게 됩니다.



1-2. lambda의 호출 경로에 절대 경로로 표시한 경우


  • lambda는 여러 OS환경에 맞춰 작동하도록 세팅되어 있기 때문에 절대 경로로 쓰게 되면 경로를 인식하지 못하고 에러를 표출하게 됩니다.

절대 경로 : 절대 경로란 /부터 시작하여 목적지에 이르기까지의 모든 경로를 적은 것을 말합니다.
ex) /C:/worksapce/hello
상대 경로 : 현재 지점부터 시작하여 원하는 목적지에 이르기까지의 경로입니다.
ex) ../hello



1-3. 코드 내에서 cors 허용을 열어주지 않은 경우(nodejs)


  • 설정을 다 해주어도 코드 내부에 허용을 해주지 않는 경우 에러를 표출합니다.




2. 해결 방법




2-1. S3 cors 설정


  • S3 cors 설정 링크로 들어가 설정을 해주고 호출하게 되면 이상 없이 되는 것을 확인할 수 있습니다.



2-2. lambda 호출 경로 변경


  • lambda의 호출 경로에 절대경로들을 상대경로로 변경하게 되면 이상 없이 되는 것을 확인할 수 있습니다.



2-3. 코드 내에서 cors 허용을 열어주지 않은 경우(nodejs)


const cors = require("cors");

const corsOptions = {
    origin: [
        "http://localhost:3000",
        "http://localhost:3001",
    ],
    credentials: true,
    optionsSuccessStatus: 200,
};

app.use(cors(corsOptions));

  • 이렇게 cors허용을 열어줍니다.

  • 프론트에서 쓰는 링크도 입력해줘야 에러가 나지 않습니다.




3. 마치며


  • 다른 분들은 이러한 에러 없이 잘 해결했으면 하는 바람에 작성하였습니다.
profile
백엔드 개발자
post-custom-banner

0개의 댓글