原生js 封装get ,post, delete 请求的实例

yizhihongxing

下面是详细讲解“原生js 封装get ,post, delete 请求的实例”的完整攻略:

一、前置知识

在封装get, post, delete请求之前,我们需要对Http请求的基本知识有一定了解,比如HTTP请求方式、请求头、响应头、状态码等等。同时,我们也需要学习一些JavaScript中Promise对象的知识。

二、实现思路

通过封装get、post、delete三种常见的HTTP请求方式,以Promise的形式返回请求结果,实现异步回调。在实现时,我们可以使用XMLHttpRequest对象来发送HTTP请求,以及设置请求头等相关信息。

三、代码实现

1. 封装 Get 请求
function get(url) {
  // 返回一个Promise对象
  return new Promise((resolve, reject) => {
    const xhr = new XMLHttpRequest()
    xhr.open('GET', url, true)
    xhr.onreadystatechange = function() {
      if (xhr.readyState === 4) {
        if (xhr.status === 200) { // 成功返回响应
          resolve(JSON.parse(xhr.responseText))
        } else { // 请求失败
          reject(new Error(xhr.statusText))
        }
      }
    }
    xhr.onerror = function() {
      reject(new Error('XMLHttpRequest Error: ' + xhr.statusText))
    }
    xhr.send()
  })
}
2. 封装 POST 请求
function post(url, data) {
  return new Promise((resolve, reject) => {
    const xhr = new XMLHttpRequest()
    xhr.open('POST', url, true)
    xhr.setRequestHeader('Content-Type', 'application/json')
    xhr.onreadystatechange = function() {
      if (xhr.readyState === 4) {
        if (xhr.status === 200) {
          resolve(JSON.parse(xhr.responseText))
        } else {
          reject(new Error(xhr.statusText))
        }
      }
    }
    xhr.onerror = function() {
      reject(new Error('XMLHttpRequest Error: ' + xhr.statusText))
    }
    xhr.send(JSON.stringify(data))
  })
}
3. 封装 DELETE 请求
function deleteRequest(url) {
  return new Promise((resolve, reject) => {
    const xhr = new XMLHttpRequest()
    xhr.open('DELETE', url, true)
    xhr.onreadystatechange = function() {
      if (xhr.readyState === 4) {
        if (xhr.status === 200) {
          resolve(JSON.parse(xhr.responseText))
        } else {
          reject(new Error(xhr.statusText))
        }
      }
    }
    xhr.onerror = function() {
      reject(new Error('XMLHttpRequest Error: ' + xhr.statusText))
    }
    xhr.send()
  })
}

四、示例说明

下面是两个使用以上封装的示例:

1. GET 请求示例

比如我们需要获取一个名为"data.json"的本地json数据文件,我们可以使用下面的方式:

get('data.json').then(response => {
  console.log(response)
}).catch(error => {
  console.log(error)
})
2. POST 请求示例

我们可以使用下面的方式向服务器发送POST请求并传递相关数据:

const data = {
  username: 'test',
  password: '123456'
}
post('/api/login', data).then(response => {
  console.log(response)
}).catch(error => {
  console.log(error)
})

以上就是使用原生JavaScript封装get、post、delete请求的实现步骤和示例说明。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:原生js 封装get ,post, delete 请求的实例 - Python技术站

(0)
上一篇 2023年6月11日
下一篇 2023年6月11日

相关文章

  • JS面向对象之多选框实现

    JS面向对象之多选框实现是一个比较基础的JavaScript面向对象应用,它的实现过程也相对简单,下面我将为大家详细讲解其完整攻略。 一、需求分析 在实现之前,我们需要先进行需求分析。在本次多选框实现中,我们需要完成以下几个基本功能: 点击某个多选框实现选中或取消选中该选项的功能; 点击“全选”按钮,所有多选框均被选中; 点击“取消全选”按钮,所有多选框均被…

    JavaScript 2023年6月10日
    00
  • WebStorm 2017.3最新汉化激活破解及安装教程(附汉化包+原版下载)

    WebStorm 2017.3最新汉化激活破解及安装教程 下载WebStorm 2017.3 首先,到官网下载WebStorm 2017.3,推荐下载Windows版本。下载后双击WebStorm-*.exe开始安装。 安装WebStorm 2017.3 按照提示进行安装,如果需要更改安装路径,可以点击“Custom”按钮进行自定义安装路径。 汉化WebSt…

    JavaScript 2023年6月1日
    00
  • 在网页中使用document.write时遭遇的奇怪问题

    使用document.write()方法在网页中输出内容是一种常见的做法。但在某些情况下,使用该方法可能会导致奇怪的问题出现。这些问题主要与网页渲染和JavaScript执行顺序有关。 下面是避免这些问题的一些攻略: 在DOMContentLoaded事件触发后再使用document.write() 当浏览器加载完DOM树后,会触发DOMContentLoa…

    JavaScript 2023年5月28日
    00
  • JS开发 富文本编辑器TinyMCE详解

    JS开发 富文本编辑器TinyMCE详解 什么是TinyMCE TinyMCE是一款完全基于JavaScript的开源富文本编辑器,它是一个丰富、灵活的工具,可以帮助我们创建各种各样的文档内容。它支持各种格式的文本、图片、表格等元素,并且能够保留你所选样式的完整性和可编辑性。 基本用法 引入TinyMCE 我们首先要引入TinyMCE的JavaScript文…

    JavaScript 2023年6月11日
    00
  • js 通用javascript函数库整理

    JS 通用 JavaScript 函数库整理 JavaScript 作为一门用于前端开发的语言,具有广泛的应用场景。但是,由于浏览器的实现不同,同一段代码在不同浏览器下的表现会有所不同。因此,为了提高开发效率,减少浏览器兼容性的问题,在实际的开发中,我们通常会采用一些 JavaScript 函数库来进行编程。 函数库的使用方法 通常,我们使用一个 JavaS…

    JavaScript 2023年6月11日
    00
  • Javascript Math SQRT1_2 属性

    JavaScript中的Math.SQRT1_2属性是一个常数,表示1/2的平方根。以下是关于Math.SQRT1_2属性的完整攻略,包含两个示例。 JavaScript Math对象的SQRT1_2属性 JavaScript的SQRT1_2属性是一个常数,表示1/2的平方根。下面是SQRT1_2属性的语法: Math.SQRT1_2 下面是一个SQRT1_…

    JavaScript 2023年5月11日
    00
  • 使用纯前端JavaScript实现Excel导入导出方法过程详解

    使用纯前端JavaScript实现Excel导入导出方法可以让用户方便地在浏览器中处理Excel文件,方便快捷,本文将详细讲解该过程。 实现Excel导入 前提条件 实现Excel导入,需要先在HTML代码中添加一个文件上传的input元素,例如: <input type="file" id="fileInput&quot…

    JavaScript 2023年5月27日
    00
  • PHPCMS 模板制作教程 黑夜之舞出品

    PHPCMS 模板制作教程 黑夜之舞出品 1. 简介 PHPCMS是一款免费开源的内容管理系统,主要用于建立网站和博客等应用,其模板制作具有高度的灵活性,可以满足不同需求的网站设计。本教程将带领您一步步完成PHPCMS模板制作的全过程。 2. 安装和配置 首先需要安装PHPCMS系统,可以从官方网站下载(http://www.phpcms.cn/downlo…

    JavaScript 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部