더북(TheBook)

브라우저는 이 응답을 허용으로 받아들이고 원래 사용자의 PUT 요청을 이어 보낸다. 이제 거부되는 경로도 구현해 보자. 코드에서 헤더 허용 부분을 지우고 println!을 에러 처리 구문에 추가한 후 curl을 다시 실행해 보자.

코드 3-16 CORS가 실패할 때 받는 에러 타입을 디버깅하기

...
async fn return_error(r: Rejection) -> Result<impl Reply, Rejection> {
    println!("{:?}", r);
    if let Some(InvalidId) = r.find() {
        Ok(warp::reply::with_status(
            "No valid ID presented",
            StatusCode::UNPROCESSABLE_ENTITY,
        ))
    } else {
        Ok(warp::reply::with_status(
            "Route not found",
            StatusCode::NOT_FOUND,
        ))
    }
    ...
}
...


신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.