前端向服务器发送请求,使用的方法有很多:

XMLHttpRequest、fetch、JQ、axios

1、axios二次封装

二次封装axios是为了请求拦截器、响应拦截器

请求拦截器:可以在发送请求之前可以处理一些业务;

响应拦截器:当服务器数据返回以后,可以处理一些事情。

安装axios

npm install --save axios

习惯与src的api下放置请求文件

在request.js文件下对axios进行二次封装

// 对于axios进行二次封装
import axios from "axios";// 1:利用axios对象的方法create,去创建一个axios实例
// 2:request就是axios,只不过稍微配置一下
const requests = axios.create({
//  配置对象
//  基础路由,发请求的时候,路径当中会出现apibaseURL: "/api",
//  代表请求超时的时间5Stimeout: 5000,
});//请求拦截器:在发请求之前,请求拦截器可以检测到,可以在请求发出去之前做一些事情
requests.interceptors.request.use((config) => {
//  config: 配置对象,对象里面有一个属性很重要,headers请求头return config;
});//响应拦截器
requests.interceptors.response.use((res) => {
//  成功的回调函数:服务器相应数据回来以后,响应拦截器可以检测到,可以做一些事情return res.data;
}, (error) => {
//  响应失败的回调函数
//   return Promise.reject(new Error('fail'));nprogress.done();
});// 对外暴露
export default requests;

2、接口统一管理

在src文件夹下index.js文件中

// 当前这个模块:API进行统一管理
import requests from "@/api/request";
// 三级联动接口
// api/product/getBaseCategoryList get 无参数
// 发请求:axios发请求返回结果Promise对象
export const reqCategoryList = () => requests({url: '/product/getBaseCategoryList', method: 'get'})

详情查询文档:axios中文网|axios API 中文文档 | axios

跨域问题

什么是跨域:协议、域名、端口号不同请求,称之为跨域

http://localhost:8080/#/home ---- 前端项目本地服务器

http://39.98.123.211 ----后台服务器

解决可以使用:JSONP、CROS、代理。

下面是使用代理解决。

DevServer | webpack 中文文档

 没有webpack.config.js文件暴露,在项目的根目录下新建vue.config.js配置文件也是一样。

proxy设置中间代理,可以帮我们向服务器发起请求。跨域问题是由浏览器的原因引起。

  • '/api':就是识别发起的请求
  • target:就是要获取服务器的API地址
module.exports = {
//  关闭eslintlintOnSave: false,// 代理跨域devServer: {proxy: {'/api': {target: 'http://39.98.123.211',}}}
}

注意:修改配置文件需要重启项目

axios二次封装以及API接口统一管理相关推荐

  1. axios get 某个参数是数组怎么传_Vue 中 Axios 的封装和 API 接口的管理

    我们所要的说的axios的封装和api接口的统一管理,其实主要目的就是在帮助我们简化代码和利于后期的更新维护. 一.axios的封装 在vue项目中,和后台交互获取数据这块,我们通常使用的是axios ...

  2. vue中Axios的封装与API接口的管理详解

    一:axios的封装 vue项目中,和后台交互获取数据这块,我们通常使用的是axios库,它是promise的http库,可运行在浏览器端和node.js中. 安装 npm install axios ...

  3. 拦截器读post参数导致接口post请求报错_vue中Axios的封装和API接口的管理

    一.axios的封装 在vue项目中,和后台交互获取数据这块,我们通常使用的是axios库,它是基于promise的http库,可运行在浏览器端和node.js中.他有很多优秀的特性,例如拦截请求和响 ...

  4. $.post请求的参数在后台代码中得到为null_vue中Axios的封装和API接口的管理

    来源:愣锤 https://juejin.im/post/684490365288107214 如图,面对一团糟代码的你~~~真的想说,What F~U~C~K!!! 回归正题,我们所要的说的axio ...

  5. router中获取vuex_Vue 中 Axios 的封装和 API 接口的管理

    (给JavaScript加星标,提升前端技能) 作者:愣锤 https://juejin.im/post/684490365288107214 如图,面对一团糟代码的你~~~真的想说,What F~U ...

  6. 【Vuejs】1028- 中 Axios 的封装和 API 接口的管理

    如图,面对一团糟代码的你~~~真的想说,What F~U~C~K!!! 回归正题,我们所要的说的axios的封装和api接口的统一管理,其实主要目的就是在帮助我们简化代码和利于后期的更新维护. 一.a ...

  7. axios封装,api接口封装统一管理

    axios封装,api接口封装统一管理 一. axios说明 Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中. axios的封装和api接口的统一管理, ...

  8. 原生 Ajax 封装 和 Axios 二次 封装

    AJAX 异步的JavaScript与XML技术( Asynchronous JavaScript and XML ) Ajax 不需要任何浏览器插件,能在不更新整个页面的前提下维护数据,但需要用户允 ...

  9. 微服务架构之公共模块式中创建API接口统一返回结果ApiResult

    微服务架构之API接口统一返回结果ApiResult 一.创建公共模块common步骤 二.在api中新建一个ApiCode枚举和ApiResult 三.ApiCode与ApiResult编码如下 四 ...

最新文章

  1. Java 源代码和 C 源代码的运行区别
  2. Java架构-(十) 整合spring cloud云架构 - SSO单点登录之OAuth2.0登录认证(1)
  3. Python 爬虫篇-利用BeautifulSoup库爬取墨迹天气网的天气信息实例演示,调用墨迹天气api接口获取空气质量
  4. java 好处_Java的优点
  5. P6砖家:对不起,我没.NET5高并发经验,我要跑路了!
  6. java字符后移_java把字符串参数往后移3位后输出
  7. 海员可以饮用蒸馏海水吗?
  8. 在webconfig中写好连接后,在程序中如何调用?
  9. 随手一写,简单的四则运算练习
  10. c语言入门经典(第5版)pdf
  11. CDA LEVELⅠ2021新版模拟题一(附答案)
  12. 重塑企业协同价值链,致远互联将“组织精神”进行到底
  13. 简单基础的原生JS实现图片上传添加
  14. 利用 cookie,实现在html页面 记住我 功能
  15. php新年计划,New Year’s Resolution |给20出头的你19条最赞的新年计划
  16. flask debug模式logging模块报错os.rename(self.baseFilename, dfn) WindowsError: [Error 32]
  17. php微信公众号报警,微信报警函数定义与用法汇总
  18. 篇一、Flask打造 Python Web 开发的灵活框架,实现简易登录。要求有 Python、HTML 和 CSS 基础。
  19. 360RePlugin 常见问题
  20. lanproxy使用

热门文章

  1. Java语言具有功能强大和简单易用的两个特征
  2. 【有利可图网】PS设计杂谈:保持格调!版式网格表现技法
  3. 数据恢复精灵视频教程(二)恢复已删除的文件
  4. G盘数据错误循环冗余检查的资料找到方案
  5. 服务器支持缓存,怎么部署缓存服务器
  6. cifar-10-batches-py转图片
  7. ansible剧本功能编写
  8. 地磅称重无人值守称重软件在化工企业中的应用
  9. 设置、修改、重设mysql root密码
  10. 学习贴:恶意软件类型及本质