自定义ajax方法

function ajax(url) {
    const p = new Promise((resolve, reject) => {
        const xhr = new XMLHttpRequest();
        xhr.open('GET', url, true)
        xhr.onreadystatechange = () => {
            if (xhr.readyState === 4) {
                if ((xhr.status >= 200 && xhr.status < 300) || xhr.status === 304) {
                    resolve(
                        JSON.parse(xhr.response))
                } else {
                    reject(new Error('Response error'))
                }
            }
        }
        xhr.send(null)
    })
        return p
}

function ajax(url, data, method, isbody) {
    method = method || "GET";
    const p = new Promise((resolve, reject) => {
        const xhr = new XMLHttpRequest();
        xhr.open(method, url, true)
        if (isbody) {
            xhr.setRequestHeader('content-type', 'application/json');
        }

        xhr.onreadystatechange = () => {
            if (xhr.readyState === 4) {
                if ((xhr.status >= 200 && xhr.status < 300) || xhr.status === 304) {
                    resolve(
                        JSON.parse(xhr.response))
                } else {
                    reject(new Error('Response error'))
                }
            }
        };
        if (data && isbody) {
            xhr.send(JSON.stringify(data));
        } else {
            xhr.send(null);
        }

    });
    return p;
}
posted @ 2023-02-06 11:37  leechg  阅读(37)  评论(0编辑  收藏  举报