vue2.0中axios请求配置

2024-09-02 17:20

本文主要是介绍vue2.0中axios请求配置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

vue2.0中axios请求配置

  • 一、vue2.0项目中
    • 1.配置
    • 2.使用
  • 二、vue2.0+ts项目中如何配置
    • 1.配置
    • 2.使用

一、vue2.0项目中

1.配置

// axios.js
import axios from 'axios';
import { Message } from 'element-ui';
import router from '../../router/index.js';
//创建axios实例const service = axios.create({timeout: 600000, // 请求超时时间withCredentials: false,
});
//请求拦截
service.interceptors.request.use(config => {config.headers['Content-Type'] = 'application/json';config.headers['aiToken'] = JSON.parse(localStorage.getItem('token'));config.url = process.env.VUE_APP_WEB_API + config.url;// get请求缓存处理if (config.params) {config.params.f_rnd = new Date().getTime();} else {config.params = {f_rnd: new Date().getTime(),};}return config;},error => {return Promise.reject(error);}
);//响应拦截器
service.interceptors.response.use(response => {let data = response.data;if (response.config.isExport) {//配置是为了下载返回二进制文档流时候return response;}if (data.code === 200) {return data;} else {if (data.code === 1015) {Message({type: 'error',offset: 12,message: '登录/授权已经过期,请重新登录',duration: 5000,});router.push({ path: '/login' });return;}Message({showClose: true,message: data.message || data.msg,duration: 2000,type: 'error',});return Promise.reject(data);}// return data;},error => {console.log('error:' + error); // 用于调试return Promise.reject(error);}
);export default service;

2.使用

// api.js
import request from '@/assets/js/axios.js';export function wordClould(params) {return request({url: `url`,method: 'get',params,});
}export function adviserWordClould(data) {return request({url: 'url',method: 'post',data,});
}

二、vue2.0+ts项目中如何配置

1.配置

// axios.ts
import axios from 'axios';
import { AxiosResponse, InternalAxiosRequestConfig, AxiosError } from 'axios';
import { Message } from 'element-ui';const request = axios.create({timeout: 50000,withCredentials: false,
});/************************************请求拦截*/
request.interceptors.request.use(//在函数中使用名为 config 的参数,并且该参数必须符合 InternalAxiosRequestConfig<any> 这个自定义类型的定义。function (config: InternalAxiosRequestConfig<any>) {// Do something before request is sentif (config.headers) {config.headers['Authorization'] = 'token';}config.url = process.env.VUE_APP_WEB_API + config.url;return config;},function (error: AxiosError) {// Do something with request errorreturn Promise.reject(error);}
);// 名为 status 的数值属性
interface responseConfig {// 响应结果包含status,0 是成功status: number;
}
/************************************ 响应拦截*/
request.interceptors.response.use(function (response: AxiosResponse<responseConfig>) {if (response.data.status === 200) {return response;}Message.error('后台接口异常,请联系管理员');return Promise.reject(response);},function (error: AxiosError) {return Promise.reject(error);}
);export default request;

2.使用

// types.ts/*** 任意类型的参数*/
export interface paramsType {[key: string]: any;
}
// api.ts
import request from '../utils/axios';
import { paramsType } from '../utils/types';/*** 登录接口* @param userData* @returns*/
export function ApiLogin(data: paramsType) {return request({method: 'POST',url: 'url',data,});
}/*** 获取菜单* @param params* @returns*/
export function APIGetMenu(params: paramsType) {return request({method: 'GET',url: 'url',params,});
}

这篇关于vue2.0中axios请求配置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1130581

相关文章

IDEA自动生成注释模板的配置教程

《IDEA自动生成注释模板的配置教程》本文介绍了如何在IntelliJIDEA中配置类和方法的注释模板,包括自动生成项目名称、包名、日期和时间等内容,以及如何定制参数和返回值的注释格式,需要的朋友可以... 目录项目场景配置方法类注释模板定义类开头的注释步骤类注释效果方法注释模板定义方法开头的注释步骤方法注

如何在Mac上安装并配置JDK环境变量详细步骤

《如何在Mac上安装并配置JDK环境变量详细步骤》:本文主要介绍如何在Mac上安装并配置JDK环境变量详细步骤,包括下载JDK、安装JDK、配置环境变量、验证JDK配置以及可选地设置PowerSh... 目录步骤 1:下载JDK步骤 2:安装JDK步骤 3:配置环境变量1. 编辑~/.zshrc(对于zsh

售价599元起! 华为路由器X1/Pro发布 配置与区别一览

《售价599元起!华为路由器X1/Pro发布配置与区别一览》华为路由器X1/Pro发布,有朋友留言问华为路由X1和X1Pro怎么选择,关于这个问题,本期图文将对这二款路由器做了期参数对比,大家看... 华为路由 X1 系列已经正式发布并开启预售,将在 4 月 25 日 10:08 正式开售,两款产品分别为华

JS+HTML实现在线图片水印添加工具

《JS+HTML实现在线图片水印添加工具》在社交媒体和内容创作日益频繁的今天,如何保护原创内容、展示品牌身份成了一个不得不面对的问题,本文将实现一个完全基于HTML+CSS构建的现代化图片水印在线工具... 目录概述功能亮点使用方法技术解析延伸思考运行效果项目源码下载总结概述在社交媒体和内容创作日益频繁的

前端CSS Grid 布局示例详解

《前端CSSGrid布局示例详解》CSSGrid是一种二维布局系统,可以同时控制行和列,相比Flex(一维布局),更适合用在整体页面布局或复杂模块结构中,:本文主要介绍前端CSSGri... 目录css Grid 布局详解(通俗易懂版)一、概述二、基础概念三、创建 Grid 容器四、定义网格行和列五、设置行

SQL server配置管理器找不到如何打开它

《SQLserver配置管理器找不到如何打开它》最近遇到了SQLserver配置管理器打不开的问题,尝试在开始菜单栏搜SQLServerManager无果,于是将自己找到的方法总结分享给大家,对SQ... 目录方法一:桌面图标进入方法二:运行窗口进入方法三:查找文件路径方法四:检查 SQL Server 安

SpringMVC获取请求参数的方法

《SpringMVC获取请求参数的方法》:本文主要介绍SpringMVC获取请求参数的方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下... 目录1、通过ServletAPI获取2、通过控制器方法的形参获取请求参数3、@RequestParam4、@

Python Transformer 库安装配置及使用方法

《PythonTransformer库安装配置及使用方法》HuggingFaceTransformers是自然语言处理(NLP)领域最流行的开源库之一,支持基于Transformer架构的预训练模... 目录python 中的 Transformer 库及使用方法一、库的概述二、安装与配置三、基础使用:Pi

前端下载文件时如何后端返回的文件流一些常见方法

《前端下载文件时如何后端返回的文件流一些常见方法》:本文主要介绍前端下载文件时如何后端返回的文件流一些常见方法,包括使用Blob和URL.createObjectURL创建下载链接,以及处理带有C... 目录1. 使用 Blob 和 URL.createObjectURL 创建下载链接例子:使用 Blob

Vuex Actions多参数传递的解决方案

《VuexActions多参数传递的解决方案》在Vuex中,actions的设计默认只支持单个参数传递,这有时会限制我们的使用场景,下面我将详细介绍几种处理多参数传递的解决方案,从基础到高级,... 目录一、对象封装法(推荐)二、参数解构法三、柯里化函数法四、Payload 工厂函数五、TypeScript