fetch() 약속은 네트워크 오류가 발생하거나 CORS가 서버 측에서 잘못 구성될 때 TypeError로 거부되지만 일반적으로 권한 문제 또는 이와 유사한 의미입니다. 성공적인 fetch()에 대한 정확한 검사에는 약속이 해결되었는지 확인한 다음 Response.ok 속성에 true 값이 있는지 확인하는 것이 포함됩니다. 코드는 다음과 같이 보일 것입니다: 우리는 response.status를 검사하는 상태 함수를 정의하고 Promise.resolve() 또는 Promise.reject(Promise.reject)의 결과를 반환하여 해결되거나 거부된 Promise를 반환합니다. 이것은 우리의 fetch() 체인에서 호출되는 첫 번째 메서드이며, 문제가 해결되면 다시 response.json() 호출에서 Promise를 반환하는 json() 메서드를 호출합니다. 이 후 구문 분석 된 JSON의 개체가 있습니다. 구문 분석이 실패하면 Promise가 거부되고 catch 문이 실행됩니다. 그래서 이것은 GET 요청, fetch 함수에 대 한 기본 요청 하지만 물론 우리는 요청의 다른 모든 종류를 할 수 있습니다 그리고 또한 헤더를 변경 하 고 오프 코스 데이터 전송, 우리가 필요로 하는 모든 우리의 개체를 설정 하 고 가져오기 함수의 두 번째 인수로 전달 하는 것입니다. : 일반적으로 GET 및 POST 메서드를 사용하여 네트워크 요청을 서버에 보내고 응답을 검색한 다음 해당 응답을 사용자에게 적절한 형식으로 표시합니다. fetch() 메서드에는 가져오려는 리소스의 URL인 필수 인수가 하나만 있습니다. 위의 예제에서는 응답 개체의 상태와 응답을 JSON으로 구문 분석하는 방법을 보았습니다.

헤더와 같은 다른 메타데이터에 액세스할 수 있습니다. 따라서 다음 코드를 참조하십시오. FETCH API의 또 다른 옵션은 axios 라이브러리를 사용하는 것입니다. 그것은 제 3 자 매우 인기 있는 자바 스크립트 라이브러리. HTML은 예상대로 반환됩니다 — 개발 도구에서 볼 수 있지만 렌더링되지는 않습니다. 브라우저가 가져오기 요청에 의해 반환된 HTML을 렌더링하지 않을 것이라고 생각하기 시작했습니다. 맞습니까? 가져오기로 인해 손실되는 기능 중 하나는 업로드/다운로드 진행 상황을 모니터링하는 것입니다. 그리고 약속 기반 인터페이스로 멋지게 복원 할 수 있는지 잘 모르겠습니다.

또는 TL;DR을 만들기 위해 … XHR을 얻는 것이 몇 줄의 코드 줄에 대한 엉망으로 간주되는 경우 몇 줄의 코드에서 동일한 양의 브라우저와 호환되는 API를 가져 오는 방법을 보여보십시오. 여기 캐치 : 당신은 할 수 없습니다. Polyfill XHR에 3개의 검사만 필요한 경우 Fetch API가 동등하게 호환되고 지원되는 크로스 플랫폼 및 교차 브라우저를 갖기 위해서는 코드 및 라이브러리의 양이 10배 필요합니다.