在目录中创建 utils 文件 中创建 request.js

/****   request.js   ****/
// 导入axios
import axios from 'axios';
// 使用element-ui Notification做消息提醒
import { Notification } from 'element-ui'
let baseURL = 'http://192.168.42.3:10001'; //index.html引入的
let baseURL2 = 'http://192.168.42.3:9095';
//1. 创建新的axios实例,
const service = axios.create({// 超时时间 单位是ms,这里设置了8s的超时时间timeout: 8 * 1000,
});
// 2.请求拦截器
service.interceptors.request.use((config) => {//发请求前做的一些处理,数据转化,配置请求头,设置token,设置loading等,根据需求去添加config.data = JSON.stringify(config.data); //数据转化,也可以使用qs转换console.log('config', config.data);config.headers = {'Content-Type': 'multipart/form-data', //配置请求头// 'Content-Type':'multipart/form-data; boundary=ZnGpDtePMx0KrHh_G0X99Yef9r8JZsRJSXC'};config.contentType = 'application/x-www-form-urlencoded'switch (config.urlType) {case 'api1':config.url = baseURL + config.url;break;case 'api2':config.url = baseURL2 + config.url;break;default:config.url = baseURL + config.url;}//注意使用token的时候需要引入cookie方法或者用本地localStorage等方法,推荐js-cookie// const token = getCookie('名称');//这里取token之前,你肯定需要先拿到token,存一下// if(token){//   config.params = {'token':token} //如果要求携带在参数中//   config.headers.token= token; //如果要求携带在请求头中// }return config;},(error) => {Promise.reject(error);},
);// 3.响应拦截器
service.interceptors.response.use((response) => {//接收到响应数据并成功后的一些共有的处理,关闭loading等return response;},(error) => {/***** 接收到异常响应的处理开始 *****/if (error && error.response) {// 1.公共错误处理// 2.根据响应码具体处理if (error.response.code != 10000) {Notification.error({title: error.response.data.message,duration: 5000})}} else {// 超时处理if (JSON.stringify(error).includes('timeout')) {Notification.error('服务器响应超时,请刷新当前页');}error.message = '连接服务器失败';}Notification.error(error.message);/***** 处理结束 *****///如果不需要错误处理,以上的处理过程都可省略return Promise.resolve(error.response);},
);
//4.导入文件
export default service;

http.js 文件 是对请求方法进行的封装

/****   http.js   ****/
// 导入封装好的axios实例
import request from './request';const http = {/*** methods: 请求* @param url 请求地址* @param params 请求参数*/get(url, params, type) {const config = {method: 'get',url: url,urlType: type,};if (params) {config.data = params;}return request(config);},post(url, params, type) {const config = {method: 'post',url: url,urlType: type,};if (params) config.data = params;return request(config);},put(url, params, type) {const config = {method: 'put',url: url,urlType: type,};if (params) config.data = params;return request(config);},delete(url, params, type) {const config = {method: 'delete',url: url,urlType: type,};if (params) config.data = params;return request(config);},
};
//导出
export default http;

新建api文件,配置请求接口

tip:因为项目中 所用到的接口,地址有两个,所以在封装的时候进行了配置

页面使用:
1.引入需要用到的接口

import { getOverview, getCount, getAnalysisOverview } from "@/api/TaskService";

2.方法中调用接口

   handleComprehensive() {let dataStr = {dateStr: this.dateComprehenValue,sign: "iidie99e999e99e9e",};getAnalysisOverview(dataStr).then((res) => {if (res.data && res.data.code == "10000") {console.log(res.data, "res.data");}});},

vue项目 封装request请求(动态区分两个请求地址)相关推荐

  1. vue项目起本地,改成https协议请求

    一般正常的vue项目,本地localhost起来默认是http请求协议开头的. 如果后端将http协议改成https请求,那么我们前端也需要进行更改,否则后端接口会报400(bad  resquest ...

  2. vue项目中运用webpack动态配置打包多种环境域名

    在如今前后端分离,各种框架盛行的前端界,对项目的打包要求也越来越复杂,本人分享一个vue项目里,根据命令行输入不同的命令,打包出不同环境域名的方法.(欢迎纠错,谢谢.) 1. 安装插件 cross-e ...

  3. VUE项目中CSS设置动态宽度的方法

    网上找到三种方法: 一.使用cumputed 首先你务必看Vue的官方文档.涉及到的基础知识有: 绑定内联样式的使用 computed的使用 文档写的都是基础使用.那么在项目实战中如何使用,两步就能实 ...

  4. 怎么改vue项目的标题_Vue动态修改网页标题的方法及遇到问题

    业务需求,进入页面的时候,网页有个默认标题,加载的网页内容不同时,标题需要变更. 例:功能授权,功能授权(张三). Vue下有很多的方式去修改网页标题,这里总结下解决此问题的几种方案: 一.最笨方案 ...

  5. Vue项目中如何设置动态的TDK

    TDK是什么 TDK就是网站的标题(title).描述(description)和关键词(keyword) TDK在哪里 上面大佬对TDK的概念解释的很全面,但是在网页中的TDK在哪里呢,作为开发人员 ...

  6. vue项目 - 封装loding组件

    一.需求问题 在vue项目中,当在页面内容进行加载的时候,会进行请求数据,然后显示页面.在这个等待的过程中,会出现一段时间的白屏,我们可以通过加一个loading的效果,进行过渡,然后显示页面. &l ...

  7. vue项目启动后终端显示localhost和ip访问地址

    1.package.json文件下"scripts"的"dev"值后新增 --host 0.0.0.0" "dev": " ...

  8. vue项目封装axios请求

    目录: 一,src/utils/request.js import axios from 'axios' import { getToken } from '@/utils/auth' import ...

  9. vue项目封装axios

    先看一下 我们的结构: 第一阶段 配置: api文件夹说明 api文件夹存放接口 user.js import request from "../utils/request";// ...

  10. vue项目-封装API接口

    1.在/src/下创建一个js文件 AxiosAsk.js import Vue from 'vue' import axios from 'axios' var vm = ''; Vue.proto ...

最新文章

  1. WebForm开发常用代码
  2. mysql 主从相关
  3. Dubbo负载均衡机制
  4. 数据产品必知的4层技术知识
  5. 【C语言简单说】十三:逻辑运算符||
  6. filezilla 共享多个目录_filezilla设置中文,3步搞定filezilla中文设置
  7. linux 简单命令
  8. 什么是事件冒泡?如何阻止事件冒泡?
  9. 假设无线打印服务器,如何把对对机通过WiFi变成微信打印机??
  10. Linux:Vim的安装与配置
  11. 没事学学docker(二):本地Centos7和阿里云服务器安装docker及其解决安装出现的问题
  12. mysql 冷备搭建_从MySQL冷备说起_MySQL
  13. 教师计算机应用能力现状分析,信息技术教学应用个人现状分析以及发展计划
  14. java开发运行环境的安装步骤_配置java开发运行环境的步骤
  15. 关于在CSDN中写博客时如何插入图片
  16. #10094. 「一本通 3.5 练习 2」消息的传递
  17. 淘宝/天猫关键词搜索采集接口分析商品价格走势(商品列表,商品销量,商品价格,分类ID采集精准商品数据)接口代码对接流程
  18. 污水处理设备:生物技术如何处理畜禽养殖污水?
  19. Vscode代码格式化文档配置
  20. 分析2022年国内国际学校ib的分数

热门文章

  1. 金融431可以带计算机,南京大学金融431可以带计算器吗?
  2. 【小教程】Ubuntu ASF steam自动挂卡
  3. 云电脑有显卡吗?云电脑怎么做画面处理?
  4. laravel 软删除
  5. tlwr842n服务器无响应,TL-WR842n无线路由器掉线解决方法汇总
  6. ant下载与本地配置
  7. vue 判断字符串是否是英文_Vuejs Element input组件区分中英文 统计长度
  8. Centos5反p2p模块安装精要
  9. 纯C语言编程实现数独解法
  10. Java项目:SSM酒店客房管理系统