안녕하세요 선생님 제가 리액트 + node.js로 풀스택 웹사이트를 만들었습니다.
프론트엔드 리포와 백엔드 리포 둘다 vercel로 배포하였습니다. 백앤드에는 cors()를 통해서 풀어놨고, 개발 환경에서는 잘 작동이 되었습니다
배포하고 나서 axios 요청의 url을 배포한 백앤드 url로 변경하였습니다. 그 결과 이상하게 GET 요청은 잘 받아지는데, POST, PUT, DELETE 요청
이 되지를 않습니다. 구글링도 하고 챗지피티도 써가면서 강제로 res에 header도 삽입하고 했는데 되지를 않습니다.
어떻게 해야할까요...
서버 cors 코드:
var cors = require("cors");
app.use(cors());
app.use((req, res, next) => {
res.setHeader("Access-Control-Allow-Origin", "*");
res.setHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS");
res.setHeader("Access-Control-Allow-Headers", "Content-Type, Authorization");
if (req.method === "OPTIONS") {
return res.sendStatus(200);
}
next();
});
프론트엔드 axios 코드
function handleSave(){
console.log('왜 안되는거냐 ㄹㅇㅇ')
axios.post('https://hireloper-backend.vercel.app/api/addExperience', {
title: title,
company: company,
description: description,
id: user.id
})
.then(response => {
console.log('Experience added:', response.data);
setUserExperiences([...userExperiences, response.data]);
})
.catch(error => {
console.error('Error adding experience:', error);
}).finally(() => {
setTitle("");
setCompany("");
setDescription("");
})
}
POSTMAN으로 저 배포된 URL에 POST 요청하면 잘 되는 상황입니다