10강 cors에러 localhost:4000으로 접속했을때 에러
153
작성한 질문수 6

에러로 의심되는 코드 올릴게요.아래는 nodebird-api 의 routes/index 파일과 middlewares/index.js코드의 corsWhenDomainMaches 모듈인데 뭐가문제인지 모르겠습니다. cors모듈은 사용했는데 말이죠
module.exports = router;
exports.corsWhenDomainMatches = async (req, res, next) => {
const domain = await Domain.findOne({
where: { host: new URL(req.get('origin')).host },
});
if (domain) {
cors({
origin: req.get('origin'),
credentials: true,
})(req, res, next);
} else {
next();
}
}; const express = require('express');
const { verifyToken, apiLimiter, corsWhenDomainMatches } = require('../middlewares');
const { createToken, tokenTest, getMyPosts, getPostsByHashtag } = require('../controllers/v2');
const router = express.Router();
router.use(corsWhenDomainMatches);
// POST /v2/token
router.post('/token', apiLimiter, createToken);
// POST /v2/test
router.get('/test', apiLimiter, verifyToken, tokenTest);
// GET /v2/posts/my
router.get('/posts/my', apiLimiter, verifyToken, getMyPosts);
// GET /v2/posts/hashtag/:title
router.get('/posts/hashtag/:title', apiLimiter, verifyToken, getPostsByHashtag);
답변 2
0
안녕하세요, 인프런 AI 인턴입니다. 김영기님이 직면한 문제는 CORS 설정 과정에서 발생하는 오류로 보입니다. 이를 해결하기 위한 몇 가지 요점을 정리해 드리겠습니다.
CORS(Cross-Origin Resource Sharing) 문제는 클라이언트-서버 간 도메인이 다를 때 발생하는 보안 정책 문제로서, 서버 측에서 올바른 CORS 정책을 설정해야 합니다. 자세한 설정 및 오류 메시지를 확인 후 적용해 보시기 바랍니다.
CORS 문제 해결을 위한 기본 점검:
- 요청하는 클라이언트의 도메인과 포트가 서버의 CORS 설정에서 허용되고 있는지 확인하세요.
corsWhenDomainMatches함수에서req.get('origin')을 사용하고 있는데,origin값이 정확한지 로그로 확인해 보세요.
Domain.findOne()으로 찾는 도메인이 데이터베이스에 있는지 확인하세요. 도메인 데이터가 없다면 CORS 설정이 작동하지 않을 것입니다.
- 요청하는 클라이언트의 도메인과 포트가 서버의 CORS 설정에서 허용되고 있는지 확인하세요.
코드 변경 제안:
- CORS 설정을 좀 더 명확하게 하기 위해서 모든 요청에 대해 CORS를 적용해 보는 것도 한 방법입니다. 만약 여전히 문제가 발생한다면, CORS 설정 위치를 코드에서 더욱 명확히 지정해 보세요. 예를 들어,
cors()사용 전 도메인을 정확히 확인하거나credentials옵션을 다시 검토하세요.
- CORS 설정을 좀 더 명확하게 하기 위해서 모든 요청에 대해 CORS를 적용해 보는 것도 한 방법입니다. 만약 여전히 문제가 발생한다면, CORS 설정 위치를 코드에서 더욱 명확히 지정해 보세요. 예를 들어,
로깅 및 디버깅:
- 이 문제를 해결하기 위해서는 서버의 로그에서 CORS 관련 요청의 헤더들이 올바르게 보내지고 있는지 확인하는 것이 중요합니다.
console.log를 사용하여req.get('origin')값이 예상 대로인지 반드시 체크하세요.
- 이 문제를 해결하기 위해서는 서버의 로그에서 CORS 관련 요청의 헤더들이 올바르게 보내지고 있는지 확인하는 것이 중요합니다.
해결 사례를 참고해 보세요:
- Node.js에서 CORS 설정 관련 문제 해결하기를 참고하십시오. 이 링크에서도 다른 회원이 유사한 문제에 대해 논의한 부분이 있어 도움이 될 수 있습니다.
- Node.js에서 CORS 설정 관련 문제 해결하기를 참고하십시오. 이 링크에서도 다른 회원이 유사한 문제에 대해 논의한 부분이 있어 도움이 될 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
깃헙 질문
0
78
2
강의 1-1 수업노트의 로드맵 링크가 작동하지 않습니다.
0
73
1
aws - lightsail 이용 관련
0
55
1
4강 http 서버 만들때 ESM방식으로 해도 될까요?
0
76
2
모듈 사용 시 단점이 있나요?
0
76
1
node.js 버전 및 typescript 적용 문의
0
90
2
12.7. 방장기능(강퇴) 질문드립니다.
0
77
2
12.7 socket.js코드 그대로 뱃겨서 했는데, socket.request.session.color가안나오네요
0
66
1
12.7 코드 그대로 뱃겨서 햇는데 스샷같이 오류가뜹니다.
0
72
2
12.7.1스스로 해보기 질문되나요
0
86
3
시퀄라이즈 실습하기 질문드립니다.
0
178
9
<7-5. 시퀄라이즈 사용하기>수업 질문 드립니다.
0
92
2
크롬에서 user id를 인풋에 입력하고 등록하면 404 에러처리 페이지가 뜹니다.
0
108
2
구매 결제관련 질문입니다 !
0
118
1
다수의 supertest 가 실행될 때 force:true로 인한 DB 초기화 문제
0
128
2
node 설치 방법이 전혀다르게 바뀐것 같습니다.
0
145
2
12강 깃허브에 있는 12.7 chat.html 복붙했는데 css오류
0
118
2
무료/프리미엄 동시 소유 시 질문
0
112
1
비주얼 스튜디오 코드로 계속 진행해도 괜찮을까요?
0
132
2
webstorm 해결할 수 없는 변수 문제
0
150
2
혹시 몽고DB 쓸거면 MySQL 강의 스킵해도 되나요?
0
143
2
LightSail 실행 중 오류 질문드립니다!
0
196
2
RedisStore 사용법 질문
0
127
2
윈도우 파일탐색기 주소창에서 cmd를 입력할 경우 해당 경로로 바로 cmd를 열 수 있습니다.
2
181
2





