Skip to content

Latest commit

 

History

History
24 lines (17 loc) · 776 Bytes

0303.md

File metadata and controls

24 lines (17 loc) · 776 Bytes

ajax、fetch、axios、websocket用法区别

ajax原理

let xhr = new XMLHttpRequest();
xhr.open("GET", 'url', true);
xhr.send();
xhr.onreadystatechange = function(res, req) {
    if (xhr.readyState === 4) {
        if (xhr.status === 200 || xhr.status === 304) {

        } else {

        }
    }
}

fetch是h5原生方法,支持promise的链式调用,默认不带cookie,不支持ie,无法检测请求进度。

axios是基于xhr在node端封装的,好处是可以拦截,取消请求,拦截响应,做代理解决本地跨域。基于promise封装,支持链式调用,并发请求。

websocket是h5新特性,先用get请求让服务端换为socket请求,随后与服务端一直连接,不受同源策略影响。