当前位置: 首页 > news >正文

网站建设的整个流程c2c网站建设要多少钱

网站建设的整个流程,c2c网站建设要多少钱,做网站常用图标,房地产设计网站Axios 详解与使用指南 1. Axios 简介 Axios 是一个基于 Promise 的 HTTP 客户端#xff0c;能够在浏览器和 Node.js 环境中运行。它提供了一种简便的方式来执行 HTTP 请求#xff0c;并支持多种请求方法#xff0c;如 GET、POST、PUT、DELETE 等。Axios 的配置灵活#x…Axios 详解与使用指南 1. Axios 简介 Axios 是一个基于 Promise 的 HTTP 客户端能够在浏览器和 Node.js 环境中运行。它提供了一种简便的方式来执行 HTTP 请求并支持多种请求方法如 GET、POST、PUT、DELETE 等。Axios 的配置灵活支持请求和响应拦截器、取消请求、并发请求处理等功能使其成为现代 Web 开发中非常流行的选择。 2. Axios 特性 基于 PromiseAxios 完全支持 Promise使得异步操作更加直观特别是在使用 async/await 时。支持多种请求方式支持常见的 HTTP 请求方法满足不同的请求需求。浏览器与 Node.js 兼容Axios 可同时在前端和后端项目中使用。拦截器提供请求和响应拦截器允许在请求或响应到达之前进行处理。自动转换 JSON 数据自动将 JSON 数据转换为 JavaScript 对象。请求取消支持通过 CancelToken 取消请求。并发请求处理支持 axios.all 等方法处理多个并发请求。 3. Axios 安装与引入 3.1 使用 npm 安装 npm install axios3.2 使用 Yarn 安装 yarn add axios3.3 在项目中引入 在 ES6 模块化的项目中使用 import axios from axios;或者在 CommonJS 模块化的项目中使用 const axios require(axios);4. Axios 基本使用 4.1 GET 请求 axios.get(/api/user, {params: {ID: 12345} }) .then(response {console.log(response.data); }) .catch(error {console.error(error); });4.2 POST 请求 axios.post(/api/user, {firstName: John,lastName: Doe }) .then(response {console.log(response.data); }) .catch(error {console.error(error); });4.3 并发请求 function getUser() {return axios.get(/api/user); }function getProfile() {return axios.get(/api/profile); }axios.all([getUser(), getProfile()]) .then(axios.spread((user, profile) {console.log(User:, user.data);console.log(Profile:, profile.data); })) .catch(error {console.error(error); });5. Axios 配置项 5.1 全局配置 Axios 提供了全局配置允许您设置默认的请求行为。您可以通过 axios.defaults 来设置全局配置这些配置会应用到每个请求中。 axios.defaults.baseURL https://api.example.com; axios.defaults.timeout 10000; axios.defaults.headers.common[Authorization] Bearer token; axios.defaults.headers.post[Content-Type] application/json;5.2 请求配置 在发送请求时可以通过配置对象自定义请求行为。这些配置项包括但不限于以下内容 url请求的 URL默认为请求的相对路径。method请求方法如 get、post 等默认值为 get。baseURL将自动加在 url 前面除非 url 是一个绝对 URL。headers自定义请求头。paramsGET 请求的 URL 参数PUT、POST 请求的 data 会自动序列化为查询字符串。dataPUT、POST、PATCH 请求的请求体。timeout请求超时设置毫秒如果请求超时将触发 timeout 错误。responseType返回的数据格式如 json、blob、document、arraybuffer、text、stream。withCredentials表示跨域请求时是否需要使用凭证默认为 false。 const config {// 请求的 URLurl: /api/user,// 请求方法method: get, // 可以是 get, post, put, delete, patch, options, head// 基础 URL将自动加在 url 前面baseURL: https://api.example.com,// 自定义请求头headers: {Content-Type: application/json,Authorization: Bearer token,X-Custom-Header: foobar},// URL 参数params: {ID: 12345},// POST、PUT、PATCH 请求的请求体data: {firstName: John,lastName: Doe},// 请求超时设置毫秒timeout: 5000, // 超时时间设置为5秒// 响应的数据类型responseType: json, // 选项有 json, blob, document, arraybuffer, text, stream// transformRequest 允许在请求数据发送到服务器之前对其进行修改// 该函数只适用于请求方法 PUT, POST, PATCHtransformRequest: [(data, headers) {// 对 data 进行任意转换处理data.firstName data.firstName.toUpperCase();return JSON.stringify(data);}],// transformResponse 允许在响应数据传递给 then 或 catch 之前对其进行修改transformResponse: [(data) {// 对 data 进行任意转换处理data JSON.parse(data);data.fullName ${data.firstName} ${data.lastName};return data;}],// 是否跨站点访问控制请求默认为 falsewithCredentials: false,// 自定义参数序列化paramsSerializer: params {return new URLSearchParams(params).toString();},// 取消请求cancelToken: new axios.CancelToken(cancel {// 在请求的执行过程中可调用 cancel 函数来取消请求// 示例cancel(Request canceled by the user.);}),// 验证状态码是否合法返回 true 表示合法validateStatus: status {return status 200 status 300; // 默认的合法范围是 200-299},// 自定义处理上传进度事件onUploadProgress: progressEvent {console.log(Upload progress:, progressEvent.loaded);},// 自定义处理下载进度事件onDownloadProgress: progressEvent {console.log(Download progress:, progressEvent.loaded);} };// 发送请求 axios(config).then(response {console.log(Response:, response.data);}).catch(error {console.error(Error:, error);});5.3 请求与响应数据转换 在 Axios 中可以通过配置 transformRequest 和 transformResponse 来对请求数据和响应数据进行转换。这两个配置项分别是请求前和响应后执行的数组函数数组中的每个函数都会依次执行。 axios.post(/api/user, {firstName: John,lastName: Doe }, {transformRequest: [(data, headers) {// 在发送请求前您可以对 data 进行自定义处理data.firstName data.firstName.toUpperCase();return JSON.stringify(data);}],transformResponse: [(data) {// 在响应到达客户端之前您可以对 data 进行自定义处理data JSON.parse(data);data.fullName ${data.firstName} ${data.lastName};return data;}] }) .then(response {console.log(response.data); }) .catch(error {console.error(error); });5.4 异步与同步请求 Axios 默认是异步请求基于 Promise。通过 async/await您可以将异步请求写成同步代码的形式 async function getUser() {try {const response await axios.get(/api/user);console.log(response.data);} catch (error) {console.error(error);} }getUser();5.5 请求取消 Axios 提供了取消请求的功能通过 CancelToken 来实现。您可以在需要取消请求时调用 cancel 方法。 const CancelToken axios.CancelToken; let cancel;axios.get(/api/user, {cancelToken: new CancelToken(function executor(c) {cancel c;}) }) .then(response {console.log(response.data); }) .catch(error {if (axios.isCancel(error)) {console.log(Request canceled, error.message);} else {console.error(error);} });// 取消请求 cancel(Operation canceled by the user.);6. Axios 拦截器 6.1 请求拦截器 请求拦截器可以在请求发送前对其进行处理。例如您可以在每次请求前自动添加 token axios.interceptors.request.use(config {config.headers.Authorization Bearer token;return config; }, error {return Promise.reject(error); });6.2 响应拦截器 响应拦截器可以在服务器响应到达客户端前对其进行处理。例如您可以统一处理错误信息 axios.interceptors.response.use(response {return response; }, error {if (error.response.status 401) {console.error(未授权请登录);}return Promise.reject(error); });注意在使用拦截器时必须确保拦截器函数有 return。否则拦截器处理后的结果无法传递给下一个拦截器或最终的请求/响应处理。 7. 在项目中的封装与使用 7.1 封装 Axios 实例 在大型项目中通常会封装 Axios 实例来处理通用配置和拦截器。 import axios from axios;const apiClient axios.create({baseURL: https://api.example.com,timeout: 10000,headers: {Content-Type: application/json,Authorization: Bearer token} });// 请求拦截器 apiClient.interceptors.request.use(config {// 在发送请求前可以做一些处理return config; }, error {return Promise.reject(error); });// 响应拦截器 apiClient.interceptors.response.use(response {// 在响应到达客户端前可以做一些处理return response.data; }, error {return Promise.reject(error); });export default apiClient;7.2 处理接口与错误 在封装的 Axios 实例中可以定义通用的错误处理逻辑确保应用程序中的所有 API 请求都具有一致的错误处理方式。 apiClient.interceptors.response.use(response {return response; }, error {// 自定义错误处理const { status } error.response;switch (status) {case 401:console.error(未授权请重新登录);break;case 404:console.error(请求资源未找到);break;default:console.error(请求错误, error.message);}return Promise.reject(error); });7.3 基本使用 在这个基础上可以封装常见的 API 请求方法比如 GET、POST、PUT、DELETE 等提供更简洁的接口。 const api {get(url, params {}, config {}) {return apiClient.get(url, {params,...config});},post(url, data {}, config {}) {return apiClient.post(url, data, config);},put(url, data {}, config {}) {return apiClient.put(url, data, config);},delete(url, params {}, config {}) {return apiClient.delete(url, {params,...config});} };export default api;7.4 通用方法 const http function(config) {return apiClient(config) };export default http;
http://www.hkea.cn/news/14302765/

相关文章:

  • 大连哪里有手机自适应网站建设五大建设的主要内容
  • 韩都衣舍网站建设方案好的建站软件
  • 长沙企业网站seo建设项目管理公司网站
  • 顺天亿建设网站国际贸易进口代理公司
  • 阿里巴巴怎么建设网站芜湖网站建设全包仅需800元
  • 文库类网站建设建议及经验中国专业的网站建设
  • 旅游网站建设研究综述网站编排类型
  • 山东省示范校建设网站wordpress美食主题
  • 南宁做网站比较好的公司汕头网站建设系统
  • 开发一个小网站多少钱深圳建设交易工程信息网
  • wordpress rss源昆明网站排名优化费用
  • 福田网站建设费用预算为什么自己做的网站打开是乱码
  • 做网站要多少费用设计小程序多少钱
  • 在线咨询 1 网站宣传用vue-cli做的网站
  • 网站设计下载wordpress 5.0.4
  • 做企业网站哪家好结合实际
  • 女生做网站主题有哪些wordpress如何返回之前更新的版本
  • 深圳做网站可用乐云seo十年学校建设网站重要性
  • 北京专业设计网站重庆网站制作有哪些
  • 网站建设公司巨头网站设计一般包括什么
  • 企业建站怎么选择做网站学费多少钱
  • 开发网站能赚多少钱wordpress 修改搜索引擎
  • 只做网站不推广能行吗哪个网站开发小程序
  • 有了域名如何建立网站烟台网站建设方案托管
  • 星月教你做网站的文档一个提高网站流量的常用方法
  • 网站建设与管理出来工资zencart网站搬家
  • 如何购物网站建设十堰论坛网站
  • vs2008 手机网站开发湖州市南浔区建设局网站
  • 包头住房与城乡建设局网站杭州企业网站建设公司怎么样
  • 内蒙古住房和城乡建设网站设计师应该知道的网站