# axios--张天禹老师 **Repository Path**: csmazh/axios ## Basic Information - **Project Name**: axios--张天禹老师 - **Description**: 张天禹老师的axios - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2023-09-12 - **Last Updated**: 2023-09-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ## 常见的响应状态码 200 OK 请求成功。一般用于 GET 与 POST 请求 201 Created 已创建。成功请求并创建了新的资源 401 Unauthorized 未授权/请求要求用户的身份认证 404 Not Found 服务器无法根据客户端的请求找到资源 500 Internal Server Error 服务器内部错误,无法完成请求 ## 请求方式与请求参数 ## 请求方式 1. GET(索取):从服务器端读取数据 --- 查(R) 2. POST(交差):向服务器端添加新数据 --- 增(C) 3. PUT:更新服务器端已存在的数据 --- 改(U) 4. DELETE:删除服务器端数据 --- 删(D) ## 请求参数 1. query 参数(查询字符串参数): 1. 参数包含在请求地址中,格式为:/xxx?name=tom&age=18 2. 敏感数据不要用 query 参数,因为参数是地址的一部分,比较危险。 3. 备注:query 参数又称查询字符串参数,编码方式为:urlencoded 2. params 参数: 1. 参数包含在请求地址中,格式如下: http://localhost:3000/add_person/tom/18 2. 敏感数据不要用 params 参数,因为参数是地址的一部分,比较危险 3. 请求体参数: 1. 参数包含在请求体中,可通过浏览器开发工具查看 2. 常用的两种格式: - 格式一:urlencoded 格式 例如:name=tom&age=18 对应请求头:Content-Type: application/x-www-form-urlencoded - 格式二:json 格式 例如:{'name': 'tom', 'age': 12} 对应请求头:Content-Type: application/json 特别注意: 1. GET 请求不能携带请求体参数,因为 GET 请求没有请求体 2. 理论上一次请求可以随意使用上述 3 种类型参数中的任何一种,甚至一次请求的 3 个参数可以用 3 种形式携带,但一般不这样做。 3. 一般来说我们有一些 “约定俗成” 的规矩: 1. 例如 form 表单发送 post 请求时:自动使用请求体参数,用 urlencoded 编码 2. 例如 jQuery 发送 ajax-post 请求时:自动使用请求体参数,用 urlencoded 编码 4. 开发中请求到底发给谁?用什么请求方式?携带什么参数? --- 要参考项目的 API 接口文档 ## API 的分类 1. REST API(restful 风格的 API) 1. 发送请求进行 CRUD,哪个操作由请求方式来决定 2. 同一个请求路径可以进行多个操作 3. 请求方式会用到 GET/POST/PUT/DELETE 2. 非 REST API(restless 风格的 API) 1. 请求方式不决定请求的 CRUD 操作 2. 一个请求路径只对应一个操作 3. 一般只用 GET/POST npm init --yes yarn add express npm i json-server -g ## 一般 HTTP 请求与 Ajax 请求 1. Ajax 请求是一种特别的 HTTP 请求 2. 对服务器来说,没有任何区别,区别在浏览器端 3. 浏览器端发请求:只有 XHR 或 fetch 发出的才是 Ajax 请求,其它所有的都是非 Ajax 请求 4. 浏览器端接收到响应: 1. 一般请求:浏览器一般会直接显示响应数据,也就是我们常说的自动刷新/跳转页面。 2. Ajax 请求:浏览器不会对界面进行任何更新操作,只是调用监视的回调函数并传入响应相关数据。(页面无刷新获取数据) ## axios 特点 1. 基于 promise 的异步 Ajax 请求库 2. 浏览器端 / node 端都可以使用 3. 支持请求 / 响应拦截器 4. 支持请求取消 5. 请求/响应数据转换 6. 批量发送多个请求