赞
踩
npm i axios
创建request.ts文件
- import axios from 'axios'
- //引入element-plus消息提示
- import { ElMessage } from 'element-plus'
- //引入用户相关的仓库
- import useUserStore from '@/store/modules/user'
- //使用axios对象create方法,创建axios实例(其他配置:基础路径、超时时间)
- const request = axios.create({
- //基础路径
- baseURL:'http://127.0.0.1:3007',
- timeout: 5000,
- })
- //添加请求与响应拦截器
- request.interceptors.request.use((config) => {
- //获取用户相关的小仓库:获取仓库内部token,登录成功以后携带给服务器
- const userStore = useUserStore()
- if (userStore.token) {
- config.headers.token = userStore.token
- }
- //config配置对象,headers属性请求头会给服务器端携带公共参数
- //返回配置对象
- return config
- },(error)=>{
- //对请求错误做什么
- return Promise.reject(error)
- })
- //响应拦截器
- request.interceptors.response.use(
- (response) => {
- //成功回调
- //简化数据
- return response.data
- },
- (error) => {
- //失败回调:处理http网络错误
- //定义一个变量:存储网络错误信息
- let message = ''
- //http状态码
- const status = error.response.status
- switch (status) {
- case 400:
- message = '请求错误(400)'
- break
- case 401:
- message = '未授权,请重新登录(401)'
- break
- case 403:
- message = '拒绝访问(403)'
- break
- case 404:
- message = '请求出错(404)'
- break
- case 408:
- message = '请求超时(408)'
- break
- case 500:
- message = '服务器错误(500)'
- break
- case 501:
- message = '服务未实现(501)'
- break
- case 502:
- message = '网络错误(502)'
- break
- case 503:
- message = '服务不可用(503)'
- break
- case 504:
- message = '网络超时(504)'
- break
- case 505:
- message = 'HTTP版本不受支持(505)'
- break
- case 1001:
- message = '验证失败'
- break
- default:
- message = `连接出错(${status})!`
- }
- //提示错误信息
- ElMessage({
- type: 'error',
- message,
- })
- return Promise.reject(error)
- },
- )
- //对外暴露
- export default request

创建api文件夹
创建user文件夹-1.创建type.ts文件定义数据类型
- //用户登录接口携带参数的ts类型
- export interface loginFormData {
- username: string
- password: string
- }
2.创建login.ts文件
- import request from '@/utils/request'
- import type {loginFormData} from './type'
- // 登录
- export const login = (data:loginFormData)=> {
- const {
- account,
- password
- } = data
- return request({
- url: '/api/login',
- method: 'POST',
- data: {
- account,
- password
- }
- })
- }

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。