서버 테스트 중 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가 서버에 요청을 보내고 응답을 받아 처리합니다.