1. 程式人生 > >ES6封裝http請求

ES6封裝http請求

    http (data) {
        return new Promise((resolve, reject) => {
            var xhr = new XMLHttpRequest();
            xhr.onreadystatechange = function () {
                if (xhr.readyState === 4) {
                    if ((xhr.status >= 200 && xhr.status < 300) || xhr.status === 304) {
                        resolve(xhr.responseText);
                    } else {
                        reject(xhr.status);
                    }
                } else {
                    // HTTP請求還在繼續...
                }
            };
            xhr.open(data.methods, data.url, true);
            xhr.setRequestHeader('content-type', 'application/json');
            delete data.methods;
            delete data.url;
            xhr.send(JSON.stringify(data));
        });
    }