JavaScript에서 Fetch API와 XMLHTTPREQUEST는 모두 HTTP 요청을하는 데 사용되지만 Fetch API는 일반적으로 약속을 사용하기 때문에 더 강력하고 유연한 것으로 간주되므로 코드 및 오류 처리를 단순화합니다. 그러나 모든 브라우저가 Fetch API, 특히 이전 브라우저를 지원하는 것은 아닙니다.
xmlhttprequest에 대한 심층적 인 이해
다음 JavaScript 코드는 XMLHTTPREQUEST (일반적으로 XHR로 약어)를 사용하여
https://www.php.cn/link/f589A241141007EB225CD68EED7BC06C :<code class="language-javascript">let xhr = new XMLHttpRequest(); xhr.open('GET', 'https://www.php.cn/link/f589a241141007eb225cd68eed7bc06c'); // 请求状态更改事件 xhr.onreadystatechange = function() { // 请求完成? if (xhr.readyState !== 4) return; if (xhr.status === 200) { // 请求成功 - 显示响应 console.log(xhr.responseText); } else { // 请求错误 console.log('HTTP error', xhr.status, xhr.statusText); } }; // 开始请求 xhr.send();</code>
<code class="language-javascript">// 设置超时 xhr.timeout = 3000; // 3 秒 xhr.ontimeout = () => console.log('timeout', xhr.responseURL);</code>
빠른 Fetch에 대해 배우십시오 Fetch API는 XMLHTTPREQUEST의 현대적인 대안입니다. 공통 헤더, 요청 및 응답 인터페이스는 일관성을 제공하는 반면, Promise는 콜백없이 더 쉽게 체인 및 비동기/대기 할 수 있습니다. 위의 XHR 예제는 더 간단한 페치 기반 코드로 변환 될 수 있으며, 이는 반환 된 JSON을 구문 분석 할 수도 있습니다.
<code class="language-javascript">// 上传进度 xhr.upload.onprogress = p => { console.log( Math.round((p.loaded / p.total) * 100) + '%') ; };</code>
Fetch API는 꽤 잘 지원되지만 모든 버전의 Internet Explorer에서는 실패합니다. 2017 년 이전에 Chrome, Firefox 및 Safari 버전을 사용하는 사용자도 문제를 경험할 수 있습니다. 이 사용자는 사용자 기반의 작은 부분 만 구성하거나 주요 고객 일 수 있습니다.
<code class="language-javascript">// jQuery Ajax $.ajax('https://www.php.cn/link/f589a241141007eb225cd68eed7bc06c') .done(data => console.log(data)) .fail((xhr, status) => console.log('error:', status));</code>
쿠키는 기본적으로 포함되지 않습니다
오류는 거부되지 않습니다
<code class="language-javascript">fetch( 'https://www.php.cn/link/f589a241141007eb225cd68eed7bc06c', { method: 'GET' } ) .then( response => response.json() ) .then( json => console.log(json) ) .catch( error => console.error('error:', error) );</code>
<code class="language-javascript">let xhr = new XMLHttpRequest(); xhr.open('GET', 'https://www.php.cn/link/f589a241141007eb225cd68eed7bc06c'); // 请求状态更改事件 xhr.onreadystatechange = function() { // 请求完成? if (xhr.readyState !== 4) return; if (xhr.status === 200) { // 请求成功 - 显示响应 console.log(xhr.responseText); } else { // 请求错误 console.log('HTTP error', xhr.status, xhr.statusText); } }; // 开始请求 xhr.send();</code>진보 없음
글을 쓰는 시점에서 Fetch는 진행 상황을 지원하지 않습니다. 따라서 파일 업로드 또는 유사한 큰 형태 제출 상태를보고 할 수 없습니다.
Fetch API를 사용한 xmlhttprequest?
xmlhttprequest에 대한 FAQS (FAQS) 및 Fetch Apis
Fetch API가 XMLHTTPREQUEST보다 낫습니까? Fetch API는 종종 약속 사용으로 인해 JavaScript로 HTTP 요청을하는 데 더 나은 선택으로 간주됩니다. 약속은 코드를보다 간결하고 읽기 쉽고 오류 처리가 더 쉬워집니다. Fetch API의 기능은 XMLHTTPrequest보다 강력하고 유연합니다. 그러나 XMLHTTPREQUEST는 여전히 널리 사용되고 지원되며 일부 경우 Fetch API를 지원하지 않는 이전 브라우저를 지원해야 할 때와 같이 더 나은 선택이 될 수 있습니다.
Fetch API가 xmlhttprequest를 대체 할 수 있습니까?예, 페치 API는 http 요청을하는 데 사용되는 javaScript의 XMLHTTPREQUEST를 대체 할 수 있습니다. Fetch API는 새로운 기술이며보다 강력하고 유연한 기능 세트를 보유하고 있습니다. 약속을 사용하여 코드를보다 간결하고 읽기 쉽고 오류 처리가 더 쉬워집니다. 그러나 XMLHTTPREQUEST는 여전히 널리 사용되고 지원되며 일부 경우 Fetch API를 지원하지 않는 이전 브라우저를 지원해야 할 때와 같이 더 나은 선택이 될 수 있습니다.
Fetch API를 사용하는 장점은 무엇입니까?
xmlhttprequest 사용의 단점은 무엇입니까?
xmlhttprequest 및 fetch api를 선택하는 방법은 무엇입니까?
같은 프로젝트에서 XMLHTTPREQUEST와 FCTE API를 모두 사용할 수 있습니까?
위 내용은 xmlhttprequest vs ajax의 Fetch API의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!