JS实现Ajax封装

 var baseUrl = 'http://localhost:4567'
        var request = function (url, option, success, faild) {
            var xhr = new XMLHttpRequest()

            if (!url) throw new Error('必须传递url')
            // 请求方法请求体
            xhr.open(option.method || 'get', baseUrl + url)
            // 判断请求头
            if (option.headers) {
                for (let headerName in option.headers) {
                    xhr.setRequestHeader(headerName, option.headers[headerName])
                }
            }
            // 不同响应数据解析:text 文件等
            if (option.responseType) {
                xhr.responseType = option.responseType
            }

            // xhr.send()传递请求体
            if (option.data) {
                xhr.send(option.data)
            } else {
                xhr.send()
            }

            xhr.onreadystatechange = function () {
                if (xhr.readyState === 4) {
                    // 成功
                    if (xhr.status === 200) {
                        success(xhr.response)
                    } else {
                        console.log(xhr)
                        faild({
                            status: xhr.status,
                            statusText: xhr.statusText 
                        })
                    }
                }
            }
        }
        request('/data', {}, function (data) {
            console.log('成功', data);
        }, function (e) {
            console.log(e);
        })

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值