马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
前言:
在开发中,有可能碰到每部分的功能的需要调用另一台服务器的地址。这个时间就需要设置差别的请求前缀首先代理到差别的服务器地址。
一、axios封装实例以及代理:(不是完整的封装实例,重点在于baseURL的区别)
文件路径:/CMDB/src/utils/request.js
- import axios from 'axios';
- const defaultConfig = {
- timeout: 5 * 1000,
- baseURL:'/api' // 注意!! 这里是全局统一加上了 '/api' 前缀,也就是说所有接口都会加上'/api'前缀在,页面里面写接口的时候就不要加 '/api'了,否则会出现2个'/api',类似 '/api/api/user'这样的报错,切记!!
- };
- const instance = axios.create(Object.assign({}, defaultConfig));
- instance.interceptors.request.use(
- function (config) {
- ...
- return config;
- },
- function (error) {
- return Promise.reject(error);
- }
- );
- instance.interceptors.response.use(
- function (response) {
- ...
- },
- function (error) {
- ...
- return Promise.reject(error);
- }
- );
- export default instance;
复制代码
代理的时间有两个前缀,根据前缀代理到差别的服务器 (我这里是vite的配置)
- server: {
- host: '0.0.0.0',
- //tip: when change this, you may need to change src/config either.
- proxy: {
- '/api': {
- // http://192.168.31.53:5173/
- target: 'http://192.168.31.199:18777/',
- changeOrigin: true,
- rewrite: path => path.replace(/^\/api/, '')
- },
- '/app': {
- target: 'http://125.124.5.117:12877/',
- changeOrigin: true
- }
- }
- }
复制代码
二、第一种:请求的时间传入参数覆盖默认的baseUrl
- import request from '@/src/utils/request.js'
- // 获取IP列表 (这个会默认用前缀 '/api')
- export const getList = data => {
- return request({
- url: '/ipv6/list',
- method: 'post',
- data
- });
- };
- // 获取IP列表 (手动加另一个前缀 '/app')
- export const getList = data => {
- return request({
- url: '/ipNetin/list',
- baseURL: '/app', // 这个 baseURL 会覆盖实例中默认的 baseURL
- method: 'post',
- data
- });
- };
复制代码
三、第二种:新封装一个axios实例
文件路径:/CMDB/src/utils/preAppRequest.js
- import axios from 'axios';
- const defaultConfig = {
- timeout: 5 * 1000,
- baseURL:'/app'
- };
- const instance = axios.create(Object.assign({}, defaultConfig));
- instance.interceptors.request.use(
- function (config) {
- ...
- return config;
- },
- function (error) {
- return Promise.reject(error);
- }
- );
- instance.interceptors.response.use(
- function (response) {
- ...
- },
- function (error) {
- ...
- return Promise.reject(error);
- }
- );
- export default instance;
复制代码
需要请求到前缀 /api 的服务器的时间 就引入 request 实例
需要请求到前缀 /app 的服务器的时间 就引入 preAppRequest 实例 如:
- import request from '@/src/utils/preAppRequest.js'
- // 获取待办列表
- export const getList = data => {
- return request({
- url: '/app/vlanNetin/list',
- method: 'post',
- data
- });
- };
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |