Vue proxyTable配置多个接口地址,解决跨域的问题

时间:2021-05-26

最开始的时候,因为请求后台出现跨域问题。

查找资料配置proxyTable,解决跨域问题。如下图所示:

axios请求页面:

this.$axios.post('/api/weblogin/login',data).then(res=>{ console.log(res)})

后面遇到需要连接不同的接口域名,我在proxyTable里增加了一个apiGas。axios请求存在获取得到api但是不能获取apiGas(提示请求资源不存在)。

proxyTable: { '/api': { target: 'http://', // 接口域名 changeOrigin: true, //是否跨域 pathRewrite: { '^/api': '/bsgzf/api/auth/' , //需要rewrite的, }, }, '/apiGas': { target: 'http://', // 接口域名 changeOrigin: true, //是否跨域 pathRewrite: { '^/apiGas':'/bsgzf/api/gas/' } }, },

查找了很多资料都没有具体的解决方法,偶然在一个相同的问题下发现一个回复,让把这两个链接位置换一下,抱着试一试的态度换了,重新运行,结果两个都可以获取了。不知道什么原理???有知道的请指教!!!

正解:

proxyTable: { '/apiGas': { target: 'http://', // 接口域名 changeOrigin: true, //是否跨域 pathRewrite: { '^/apiGas':'/bsgzf/api/gas/' } }, '/api': { target: 'http://', // 接口域名 changeOrigin: true, //是否跨域 pathRewrite: { '^/api': '/bsgzf/api/auth/' , //需要rewrite的, }, }, },

补充知识:Vue里的proxyTable解决跨域,api接口管理

本文单纯的介绍Vue项目中接口的集中管理以及跨域的解决方法。

1.webpack里的proxyTable设置跨域:config->index.js

module.exports = { dev: { assetsSubDirectory: 'static', assetsPublicPath: '/', proxyTable: { '/api':{ target:'http://localhost:80', //这里配置的是 请求接口的域名 // secure: false, // 如果是https接口,需要配置这个参数 changeOrigin: true, // 如果接口跨域,需要进行这个参数配置 pathRewrite:{ '^/api':'' //路径重写,这里理解成用'/api'代替target里面的地址. } } }, }

2.设置api

2.1文件目录

2.2 api.js 编码

import axios from 'axios'axios.defaults.baseURL = '/api';axios.defaults.headers.post['Content-Type'] = 'application/json;charset=utf-8';axios.defaults.withCredentials = true//接口自定义//修改用户信息接口export const updateOneUser = params => { return axios.post('/anta/anta-back/src/php/updateUser.php', params) .then(res => res.data)};

3.组件中引用

import {updateOneUser} from "../../api/api"methods:{ //给后台发送数据 var params = new URLSearchParams(); params.append('userphone', this.watchStudentInfo.userphone); params.append('userpass', this.watchStudentInfo.userpass); console.log(params) updateOneUser(params).then(data=>{ //后台返回的数据 if(data==1){ //添加成功 this.$message.success('修改成功') }else{ //失败 this.$message.success('修改失败') } }).catch(error=>{ this.$message.success('修改失败') })}

以上这篇Vue proxyTable配置多个接口地址,解决跨域的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章