axios模块化封装实例化及vue本地解决跨域方案

yizhihongxing

非常感谢您的提问,下面是关于“axios模块化封装实例化及vue本地解决跨域方案”的完整攻略。

什么是axios?

Axios 是一个基于 promise 的 HTTP 库,可以用于浏览器和 node.js 中的 AJAX,其语法简单易懂,可以在客户端和服务端轻松使用。

axios的使用方法

安装axios:

我们可以采用 npm 安装 axios,使用命令:

npm install axios --save

引入axios:

安装完成后,在项目入口文件中引入 axios:

import axios from 'axios';

axios请求方式

  • GET 请求

axios.get('/api/getUserInfo', {
params: {
id: 123
}
}).then(res => {
console.log(res.data);
}).catch(err => {
console.log(err);
})

  • POST 请求

axios.post('/api/submitData', {
name: 'test',
age: 20
}).then(res => {
console.log(res.data);
}).catch(err => {
console.log(err);
})

axios模块化封装

在实际项目中,我们往往需要对 axios 进行封装,以便于统一管理请求拦截、响应拦截、统一返回值处理等操作,下面是一个简单的封装示例:

// api.js

import axios from 'axios';

const service = axios.create({
  baseURL: '/api',
  timeout: 5000 // 超时时间
});

// 请求拦截
service.interceptors.request.use(config => {
  // 在此处添加token等认证信息
  return config;
}, err => {
  return Promise.reject(err);
})

// 响应拦截
service.interceptors.response.use(res => {
  const code = res.data.code;
  if (code === 200) {
    return res.data.data;
  } else {
    // 在此处处理错误信息
    return Promise.reject(res);
  }
}, err => {
  return Promise.reject(err);
})

export default service;

axios实例化

为了更好的管理 axios 请求,我们可以使用实例化创建多个 axios 实例,下面是一个简单的实例化示例:

// api.js

import axios from 'axios';

const service1 = axios.create({
  baseURL: '/api1',
  timeout: 5000 // 超时时间
});

const service2 = axios.create({
  baseURL: '/api2',
  timeout: 5000 // 超时时间
});

export {
  service1,
  service2
};

vue本地解决跨域方案

我们知道,由于浏览器同源策略的限制,不能跨域访问接口,但是在开发过程中,我们往往需要访问不同的接口,这时候我们可以在接口的后面加上一个代理来解决跨域问题。

我们可以在项目根目录的 vue.config.js 文件中配置跨域代理,下面是一个简单的配置示例:

module.exports = {
  devServer: {
    port: 3000,
    proxy: {
      '/api': {
        target: 'http://localhost:8080',
        changeOrigin: true,
        pathRewrite: {
          '^/api': ''
        }
      }
    }
  }
}

这样,我们就可以在本地开发时,使用 http://localhost:3000/api 访问 http://localhost:8080 服务端提供的接口,本地运行的 vue 项目就可以解决跨域问题了。

希望我的回答能够帮到您,如果您还有什么不懂得地方,请随时向我提出。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:axios模块化封装实例化及vue本地解决跨域方案 - Python技术站

(0)
上一篇 2023年6月27日
下一篇 2023年6月27日

相关文章

  • win10系统下如何使用dns优选工具

    Win10系统下如何使用DNS优选工具攻略 DNS(Domain Name System)是一种用于将域名转换为IP地址的协议。在访问网站时,计算机需要通过DNS服务器将域名解析为IP地址。攻略将介绍如何使用DNS优选工具来优化DNS服务器的选择,提高网络访问速度。 步骤1:下载DNS优工具 可以在网上下载DNS优选工具,例如DNS Jumper、Quick…

    other 2023年5月7日
    00
  • 小米手机4的内存速度怎么样?eMMC 5.0速度快不快?

    小米手机4采用了eMMC 5.0存储技术,它的内存速度相对较快。eMMC 5.0是一种闪存存储解决方案,它采用了高速的MMC(多媒体卡)接口,提供了更快的数据传输速度和更好的性能。 eMMC 5.0的速度主要受到两个因素的影响:读取速度和写入速度。下面是两个示例说明: 读取速度:小米手机4的eMMC 5.0存储器具有较快的读取速度,这对于快速加载应用程序和文…

    other 2023年8月1日
    00
  • c#netty框架

    C# Netty框架 Netty是一个高性能、异步事件驱动的网络应用程序框架,支持多种协议和传输方式。C# Netty是Netty框架的C#版本,提供了类似于Java版本的API和功能。本文将介绍C# Netty框架的基本用法和常用组件。 安装C# Netty框架 您可以从C# Netty的官方网站下载最新版本的C# Netty框架。下载完成后,您需要将C#…

    other 2023年5月7日
    00
  • weblogic服务器的简单使用(一)

    WebLogic服务器的简单使用(一) WebLogic是一款Java应用服务器,可以用于部署和运行Java应用程序。本文将介绍如何使用WebLogic服务器,包括安装WebLogic服务器、创建域、部署应用程序等。 安装WebLogic服务器 在使用WebLogic服务器之前,需要先安装WebLogic服务器。可以从Oracle官网(https://www…

    other 2023年5月5日
    00
  • Go语言中的Array、Slice、Map和Set使用详解

    下面是对“Go语言中的Array、Slice、Map和Set使用详解”的完整攻略。 1. Array 1.1 简介 在Go语言中,数组是一种固定大小的数据结构,表示相同类型的元素的有序集合。 数组的定义方式为: var arr [n]type 其中,n表示数组的大小,type表示数组中元素的类型。 1.2 示例 下面是一个将数组进行遍历的示例: packag…

    other 2023年6月20日
    00
  • python super()函数的详解

    Python super()函数的详解 super()函数是用于解决多重继承中父类方法名冲突的一种机制,它返回一个临时对象,这个临时对象绑定了父类和子类的关系,可以让我们很方便地调用父类的方法。 super()的语法 super([type[, object-or-type]]) type — 类。 如果是单继承,第一个参数是省略的,直接使用父类即可。 o…

    other 2023年6月27日
    00
  • 利用shell编程实现DOS风格的Linux命令行

    利用shell编程实现DOS风格的Linux命令行 在本文中,我们将介绍如何使用shell编程实现DOS风格的Linux命令行。通过这种方式,我们可以使用类似于DOS的命令行界面来操作Linux系统。 我们可以将这个功能实现为一个脚本,然后通过将脚本添加到PATH环境变量中,使其能够在系统任何位置被执行。 以下是实现该功能的步骤: 1. 创建一个脚本 首先,…

    other 2023年6月26日
    00
  • 联想笔记本怎么一键恢复 联想笔记本恢复出厂设置教程

    联想笔记本一键恢复教程 为了让联想笔记本恢复到出厂设置,我们可以采用一键恢复的方式。此操作会删除所有的数据,所以在执行此操作之前,用户需要备份好自己的所有重要数据。 步骤1:启动联想笔记本并进入恢复界面 打开联想笔记本,保证电脑处于关机状态。 开机后,在联想图标出现之前按下F12键,可以进入BIOS启动菜单。 在启动菜单中,选择“启动计算机修复程序”并回车。…

    other 2023年6月20日
    00
合作推广
合作推广
分享本页
返回顶部