安装axios
npm i axios
axios官网:https://www.axios-http.cn/
1,创建文件夹 utils 存放 request.js 文件
import axios from 'axios' // 创建一个自己的 axios 实例 const instance = axios.create({ // 设置基础的 url 例: baseURL: 'https://api.example.com', // 请求延迟 timeout: 5000 }) // 添加请求拦截器 instance.interceptors.request.use(function (config) { // 在发送请求之前做些什么 return config }, function (error) { // 对请求错误做些什么 return Promise.reject(error) }) // 添加响应拦截器 instance.interceptors.response.use(function (response) { // 2xx 范围内的状态码都会触发该函数。 // 对响应数据做点什么 return response.data }, function (error) { // 超出 2xx 范围的状态码都会触发该函数。 // 对响应错误做点什么 return Promise.reject(error) }) export default instance
2,创建api文件夹,存放 项目用到的 api请求,举例api:
import instance from '@/utils/request' export function getLoginImage () { return instance({ method: 'GET', // get请求可以省略此 method url: '/captcha/image' }) } export function getDate (data) { return instance({ url: '/captcha/date', params: { data } }) } export function postA (data) { return instance({ method: 'POST', url: '/ass', data: data }) } export function deleteId (id) { return instance({ method: 'DELETE', url: '/de', params: { id } }) }
3,在vue2中调用 api 示例:
// 登录页面 import { getLoginImage } from '@/api/loginApi' export default { name: 'loginIndex', methods: { async getImage () { const image = await getLoginImage() console.log(image) } }, created () { this.getImage() } }