webpack 代理解决跨域问题

  1. 之前和后台联调,在本地做了代理解决跨域问题,现在要放到服务上发现发送失败,发送的请求还带着代理的API字段
  2. 配置如下
    proxyTable: {
      '/api': {
        // target: '',
        target: 'xxx,xxx,xxx,xxx',
        changeOrigin: true,
        pathRewrite: {
          '^/api': ''
        }
      }
    },

因为和2个后台联调,所以没有强制要求所有请求都加上固定的代理,所以请求的URL是这样写的

let url = '/api/FileStation'; 后台1的
let url = '/api2/FileStation'; 后台2的

我曾尝试在配置中 将 target: 设为空字符串, 认为这样就可以将

'/api/FileStation' =>'/FileStation'

实际发行不行,请大牛指导如何做。

阅读 3.7k
5 个回答

多谢各位的指导,原来代理是只能在本地有作用的.
我修改后在main.js 设置了全局代理

Axios.defaults.baseURL = '/api1'; 
Axios.defaults.baseURL = '/api2';

这样url就不用了加上'/api'的字段了,和谁调试就用将另一个的注释掉,这样在需要打包放到服务器的时候就不用一个一个的去删除url中的'/api'。

这个是本地联调用的 让后端解决跨域

代理是本地才有效果的,你上线要让后端配置cors跨域,你让后端百度下cors跨域设置,然后配置下就好了

你本地用这个完全没问题,但是你放到线上肯定不行啊。你要知道这个配置代理的原理是什么,你就知道这样的代码放到线上是肯定行不通的。线上跨域可以和后端商量解决办法,通常比较省事的办法让他们把服务器配一下,权限放开就好了。

额,谁能解释下proxy,不能在线上使用

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题