class html { //默认head timeout=10000 Headermr={ 'Content-Type': 'application/json;charset=utf-8' } constructor() { //创建 XMLHttpRequest 对象 this.xhr = new XMLHttpRequest() } /*html.get({ url() -- 请求的地址 method: -- 请求的类型 data{ -- 数据 get 传输方式是在地址后拼接传输的 post 是在 send()里面传输的 id="1" text="好的" } timeout: -- 网络请求超时间 header:{} -- 请求头 })*/ //promise get(par) { return new Promise((success,error)=>{ this.timeoutm(par) let urldata = "" //创建一个变量储存数据 用来拼接 //遍历data for (const key in par.data) { urldata += `&${key}=${par.data[key]}` //进行拼接 } urldata = urldata.replace("&", ""); //将第一个开头的&替换成空 //创建一个新的HTTP请求,并指定该请求的方法、URL及验证信息 this.xhr.open("GET", `${par.url}?${urldata}`) console.log("GET", `${par.url}?${urldata}`) this.xhr.timeout=this.timeout; this.RequestHeader(par.Header) //将请求发送出去 this.xhr.send() //回调函数对不同状态进行处理 this.statechange(success, error) }) } //callback /*get传值方法 get(par) { this.timeoutm(par) let urldata = "" //创建一个变量储存数据 用来拼接 //遍历data for (const key in par.data) { urldata = `&${key}=${par.data[key]}` //进行拼接 } urldata = urldata.replace("&", ""); //将第一个开头的&替换成空 //创建一个新的HTTP请求,并指定该请求的方法、URL及验证信息 this.xhr.open("GET", `${par.url}?${urldata}`) this.xhr.timeout=this.timeout; this.RequestHeader(par.Header) //将请求发送出去 this.xhr.send() //回调函数对不同状态进行处理 this.statechange(par.success, par.error) } //post传值方法 post(par) { this.timeout(par) //创建一个新的HTTP请求,并指定该请求的方法、URL及验证信息 this.xhr.open("POST", `${par.url}`) this.RequestHeader(par.Header) //将请求发送出去 this.xhr.send(JSON.stringify(par.data)) //回调函数对不同状态进行处理 this.statechange(par.success, par.error) }*/ //回调函数 statechange(success, error) { this.xhr.onreadystatechange = () => { if (this.xhr.readyState == "4") { if (this.xhr.status == "200") { let data=JSON.parse(this.xhr.response) success(data) }else{ error(this.xhr) } } } } //多个请求头遍历 RequestHeader(Header={}){ Object.assign(Header,this.Headermr) for (const key in Header) { this.xhr.setRequestHeader(key,Header[key]); } } timeoutm(par){ this.timeout=par.timeout||this.timeout; } } var http = new html() /* let xhr = new XMLHttpRequest(); xhr.open("GET", "http://127.0.0.1:3000/api/json/index") xhr.setRequestHeader() xhr.timeout() xhr.send() xhr.onreadystatechange = () => { if (xhr.readyState == "4") { if (xhr.status == "200") { } } } */