js中es6新增请求方法fetch的封装

typescript 复制代码
function formtor(data) {
    let dataStr = ''
    Object.keys(data).forEach(key => {
       dataStr += key + '=' + data[key] + '&'
    })
    if (dataStr !== '') {
       dataStr = dataStr.substring(0, dataStr.length - 1)
    }
    return dataStr
}

async function ajax(url = '', type = 'GET', data = {}) {
    if (type === "GET") {
       const dataStr = formtor(data)
       url += url + '?' + dataStr
    }
    let requestConfig = {
       method: type,
       headers: {
          "Content-type": "application/x-www-form-urlencoded;charset=UTF-8"
       }

    }
    if (type === "POST") {
       // requestConfig.body = formtor(data)
       //拦截对象,为对象增加新的属性
       //在es6中,我们不推荐直接为一个对象增加新属性的时候使用读取方式
       Object.defineProperties(requestConfig, "body", {
          value: formtor(data)
       })
    }
    const response = await fetch(url, requestConfig)
    const responseJSON = await response.json()
    return responseJSON
}
相关推荐
打小就很皮...8 分钟前
网页包装为桌面应用(electron版)
前端·electron
用户917439653922 分钟前
基于SqlSugar开发框架的基础上快速开发H5端的移动应用
前端·负载均衡
Yesterday不想说话31 分钟前
Promise的总结
前端
C_心欲无痕34 分钟前
nodejs - npm和package.json文件解析
前端·npm·json
H@Z*rTE|i35 分钟前
webpack 打包流程(极简记忆口诀)
前端·webpack·node.js
@菜菜_达1 小时前
前端 HTML 入门(标签)
前端·html
智航GIS1 小时前
7.1 自定义函数
前端·javascript·python
BlackWolfSky1 小时前
React中文网课程笔记1—快速入门
前端·笔记·react.js
A_one20101 小时前
利用npm内置命令构建脚本工具
前端·npm·node.js
哔哩哔哩技术1 小时前
2025年哔哩哔哩技术精选技术干货
前端·后端·架构