서버 테스트 중 redirect가 동작하지 않는 문제가 발생했다.
import { ServerPropsType } from "@/src/type/types";
import { connectDB } from "@/src/util/database";
const handler = async (...[req, res]: ServerPropsType) => {
if (req.method === "POST") {
return res.status(200).redirect("/");
}
};
export default handler;
클라이언트에서 POST요청이 오면 200상태코드와 함께 메인페이지로 리다이렉트 되는 테스트 코드를 만들었다. 하지만 상태코드는 들어오지만 redirect가 동작하지 않는 문제가 발생되었다.
위의 문제는 클라이언트에서 서버로 요청을 보내는 주체에 따라 redirect가 작동하고 안하고 차이가 있다.
웹 페이지에서 어떤 동작을 수행할 때 발생한다. 예시로 사용자가 링크를 클릭하거나, HTML from을 제출하는 경우이다. 이런경우 브라우저가 직접 서버에 요청을 보내고 서버에서 전달된 응답을 바탕으로 새로운 페이지를 로드하거나 현재 페이지를 업데이트 한다.
웹 페이지의 JavaScript 코드가 실행되면서 발생한다. 예시로 fetch() 함수나 axios 같은 HTTP 클라이언트 라이브러리를 사용하여 비동기적으로 데이터를 요청하는 경우가 있다. 이런 경우 JavaScript가 서버에 요청을 보내고 응답을 받아 처리합니다.