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

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

查找资料配置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配置多个接口地址,解决跨域的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • vue配置多代理服务接口地址操作

    一.介绍 随着微服务架构的流行,后台项目逐渐被拆分成不同的模块进行通信,但是前端还是只有一个项目所以在访问不同模块后台时,需要请求不同的地址,在vue项目中,通过配置代理可以进行后端服务器接口地址访问,当需要访问不同微服务的后端接口时就需要配置不同的地址. 二.代码 config/index.js文件中配置代理地址: 自己项目中定义所有接口api管理文件src/api/getData.js: 页面调用接口时xxx.vue 三.总结 1.vue使用配置多代理地址方式可以访问不同的项目地址,使用以上

  • 详解Vue 开发模式下跨域问题

    设置请求头部 后端设置请求头部Access-Control-Allow-Credentials: true和Access-Control-Allow-Origin: www.xxx.com 前端post请求设置withCredentials=true 这里用了axios的请求数据方法代码如下: import axios from 'axios' import config from '../config' export default { request (method, uri, data,

  • 详解Vuejs2.0 如何利用proxyTable实现跨域请求

    前言: 本地项目在请求远端服务器接口时,不可避免的会遇到跨域问题,即便是设置了Access-Control-Allow-Origin:* ,在遇到登录这些需要本地存入cookie的也会很头痛,这里笔者介绍一个在vue-cli中配置代理来解决的办法. 在~/config/dev-server.js中 使用了非常强大的http-proxy-middleware包.更多高级用法,请查阅其文档. 用法: 比如我们要请求的远端服务器为:http://192.168.400:3000 proxyTable:

  • Vue多环境代理配置方法思路详解

    背景: 多人协作模式下,修改代理比较麻烦,而且很容易某个开发人员会修改了vue.config.js文件后提交了. 第一,很容易引起冲突. 第二,很容易出现代理错误,需要排查.而且现在微服务盛行,在生产环境下有网关配置,不会出错,但是在本地调试会造成麻烦,如修改了代理地址需要同步修改代理中的地址,很麻烦也很容易出错. 解决思路: 1.开发中定义常量js文件,例如constants.js.用户存放各个服务需要代理的服务名. let api = "" let loginServer = &q

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

    最开始的时候,因为请求后台出现跨域问题. 查找资料配置proxyTable,解决跨域问题.如下图所示: axios请求页面: this.$axios.post('/api/weblogin/login',data).then(res=>{ console.log(res) }) 后面遇到需要连接不同的接口域名,我在proxyTable里增加了一个apiGas.axios请求存在获取得到api但是不能获取apiGas(提示请求资源不存在). proxyTable: { '/api': { targ

  • vue项目打包后怎样优雅的解决跨域

    前言 在使用vue.js开发前端项目时,再结合webpack搞起各种依赖.各种插件进行开发,无疑给前端开发带来了很多便捷,就在解决跨域这个问题上,相信众多用vue.js的前端同僚们同我一样尝到了甜头,开发环境全靠proxyTable一通配置简直不要太酸爽.还不明所以然的新手们可能还没搞清我说的是什么,就是下面这几行配置: proxyTable: { '/api': { target: 'http://113.113.113.113:5000', //假的接口地址哈 changeOrigin: t

  • vue+Java后端进行调试时解决跨域问题的方式

    今天在开发过程中遇到一个问题,拿到了一套vue代码,计划对这套代码的部分样式进行调整,Java后端代码已经写好并且部署到了线上.这时命令行运行vue项目时访问会受限,取不下数据来,遇到了跨域访问失败的问题,这时可以怎么做呢? 首先,要了解什么叫跨域访问? 跨域,指的是浏览器不能执行其他网站的脚本.它是由浏览器的同源策略造成的,是浏览器对javascript施加的安全限制. 所谓同源是指,域名,协议,端口均相同,举个例子: http://www.123.com/index.html 调用 http

  • vue解决跨域路由冲突问题思路解析

    vue 简介 Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的渐进式框架. Vue 只关注视图层, 采用自底向上增量开发的设计. Vue 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件. Vue 学习起来非常简单,本教程基于 Vue 2.1.8 版本测试. 当我们在路由里面配置成以下代理可以解决跨域问题 proxyTable: { '/goods/*': { target: 'http://localhost:3000' }, '/users/*

  • 如何在vue里面优雅的解决跨域(路由冲突问题)

    如何在vue里面优雅的解决跨域,路由冲突问题 当我们在路由里面配置成以下代理可以解决跨域问题 proxyTable: { '/goods/*': { target: 'http://localhost:3000' }, '/users/*': { target: 'http://localhost:3000' } }, 这种配置方式在一定程度上解决了跨域问题,但是会带来一些问题, 比如我们的vue 路由 也命名为 goods,这时候就会产生了冲突, 如果项目中接口很多,都在这里配置是很麻烦的,也

  • Vue-Cli配置代理转发解决跨域问题的方法

    目录 vue-cli中集成的跨域解决方案 vue-cli解决跨域配置说明 基地址 重启项目,验证结果 小结 vue-cli中集成的跨域解决方案 思路: 在前端服务和后端接口服务之间 架设一个中间代理服务,它的地址保持和前端服务一致,那么: 代理服务和前端服务之间由于协议域名端口三者统一不存在跨域问题,可以直接发送请求 代理服务和后端服务之间由于并不经过浏览器没有同源策略的限制,可以直接发送请求 这样,我们就可以通过中间这台服务器做接口转发,在开发环境下解决跨域问题,看起来好像挺复杂,其实vue-

  • Nginx 反向代理解决跨域问题多种情况分析

    当你遇到跨域问题,不要立刻就选择复制去尝试.请详细看完这篇文章再处理 .我相信它能帮到你. 分析前准备: 前端网站地址:http://localhost:8080 服务端网址:http://localhost:59200 首先保证服务端是没有处理跨域的,其次,先用postman测试服务端接口是正常的 当网站8080去访问服务端接口时,就产生了跨域问题,那么如何解决?接下来我把跨域遇到的各种情况都列举出来并通过nginx代理的方式解决(后台也是一样的,只要你理解的原理). 跨域主要涉及4个响应头:

  • Nginx 代理解决跨域问题多种情况分析

    何为跨域问题 跨域本人经过两天的磨练,大量地翻阅网上资料,通俗地讲,就是,同一ip,同一域名,不同端口下,需要互相访问,需要cookie的传递以及数据的获取. 一般在项目中,前后端完全分离,因此访问的端口号不同,比如:localhost:8090(前端)发送到localhost:8001(后端)请求数据,此时前后端就出现了跨域问题.下面紧接着给大家介绍Nginx 代理解决跨域问题分析,内容如下所示: 当你遇到跨域问题,不要立刻就选择复制去尝试.请详细看完这篇文章再处理 .我相信它能帮到你. 分析

  • SpringBoot中到底该如何解决跨域问题

    目录 前言 1.跨域访问报错 2.同源定义 3.跨域问题如何解决? 4.CORS原理 5.SpringMVC中如何解决跨域问题? 6.方案1:方法或者类上标注@CrossOrigin注解 7.方案2:全局配置的方式 8.方案3:拦截器的方式CorsFilter 9.案例代码 9.1.案例完整代码 9.2.接口代码:CorsController 9.3.静态页面:cors.html 9.4.将chat21-cores模块发布到tomcat 9.5.运行静态页面cors.html 9.6.点击第1个

  • AJAX请求以及解决跨域问题详解

    目录 AJAX 介绍 一.原生AJAX请求(GET) 二.jQuery AJAX请求(GET 和POST) 三.跨域问题的解决 四.其他解决跨域问题方法 总结 AJAX 介绍 AJAX其实就是异步的js和xml 通过ajax可以在浏览器中发送异步请求. 最大优势:无刷新获取数据 优点: 1.可以无需刷新页面与服务器进行通信 2.允许根据用户事件更新部分页面内容 当然也存在其缺点问题:比如跨域问题等! 一.原生AJAX请求(GET) 由于get和post请求类似,原生代码相比jQuery复杂一些:

随机推荐