赞
踩
function zdAjax(url) { // 创建对象 const xhr = new XMLHttpRequest() // 监听返回的结果 xhr.onload = function() { if (xhr.status >= 200 && xhr.status < 300) { console.log(xhr.response) } } // 设置接收的数据格式 xhr.responseType = "json" // 配置网络请求信息 xhr.open("get", url) // 发送网络请求 xhr.send() } zdAjax("http://123.207.32.32:8000/home/multidata")
function zdAjax(url, { method = "get", data = {}, timeout = 10000, success, failure, headers } = {}) { // 创建对象 const xhr = new XMLHttpRequest() // 监听返回的结果 xhr.onload = function() { if (xhr.status >= 200 && xhr.status < 300) { success && success(xhr.response) } else { failure && failure({code: xhr.status, message: xhr.statusText}) } } // 设置接收的数据格式 xhr.responseType = "json" // name=kobe&age=18 if (method.toUpperCase() === "GET") { // 拿到data中所有的key const queryParamKeys = Object.keys(data) // 将所有的key遍历,并把每个key和对应的value都拼接成key=value这种形式存在数组中,最后把数组转成字符串并且用&分割 const paramString = queryParamKeys.map(item => { return `${item}=${data[item]}` }).join("&") // 在url后面拼一个查询字符串,配置网络请求信息 xhr.open(method, url + "?" + paramString) // 发送网络请求 xhr.send() } else { // 配置网络请求信息 xhr.open(method, url) // 使用post方法传参需要注意参数的类型,如果不是表单,就需要对其进行设置 // 如果调用这个方法的开发者也设置了一些关于头部的内容,就可以通过下面的方法操作 const headerParamsKeys = Object.keys(headers) headerParamsKeys.forEach(item => { xhr.setRequestHeader(item, headers[item]) }) xhr.send(JSON.stringify(data)) } // // 配置网络请求信息 // xhr.open("get", url) // // 发送网络请求 // xhr.send() } // 发送get请求 // zdAjax("http://123.207.32.32:1888/02_param/get", { // success(res) { // console.log("res:", res) // }, // failure(err) { // console.log("err:", err) // }, // data: { // name: "james", // age: 42 // } // }) // 发送post请求,并且传递参数为json类型 zdAjax("http://123.207.32.32:1888/02_param/postjson", { success(res) { console.log("res:", res) }, failure(err) { console.log("err:", err) }, method: "post", data: { name: "kobe", age: 32 }, headers: { "Content-type": "application/json" } })
function zdAjax(url, { method = "get", data = {}, timeout = 10000, headers } = {}) { return new Promise((resolve, reject) => { // 创建对象 const xhr = new XMLHttpRequest() // 监听返回的结果 xhr.onload = function () { if (xhr.status >= 200 && xhr.status < 300) { resolve(xhr.response) } else { reject({ code: xhr.status, message: xhr.statusText }) } } // 设置接收的数据格式 xhr.responseType = "json" // 设置延迟时间 xhr.timeout = timeout // name=kobe&age=18 if (method.toUpperCase() === "GET") { // 拿到data中所有的key const queryParamKeys = Object.keys(data) // 将所有的key遍历,并且把每个key和对应的value都拼接成key=value这种形式存在数组中,最后把数组转成字符串并且用&分割 const paramString = queryParamKeys.map(item => { return `${item}=${data[item]}` }).join("&") // 在url后面拼一个查询字符串,配置网络请求信息 xhr.open(method, url + "?" + paramString) // 发送网络请求 xhr.send() } else { // 配置网络请求信息 xhr.open(method, url) // 使用post方法传参需要注意参数的类型,如果不是表单,就需要对其进行设置 // 如果调用这个方法的开发者也设置了一些关于头部的内容,就可以通过下面的方法操作 const headerParamsKeys = Object.keys(headers) headerParamsKeys.forEach(item => { xhr.setRequestHeader(item, headers[item]) }) xhr.send(JSON.stringify(data)) } }) } // 发送get请求 zdAjax("http://123.207.32.32:1888/02_param/get", { data: { name: "kobe", age: 18 } }).then(res => { console.log("res:", res) }) // 发送post请求,并且传递参数为json类型 // zdAjax("http://123.207.32.32:1888/02_param/postjson", { // data: { // name: "kobe", // age: 18 // }, // method: "post", // headers: { // "Content-type": "application/json" // } // }).then(res => { // console.log("res:", res) // })
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。