vue 设置proxyTable解决跨域问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue 设置proxyTable解决跨域问题相关的知识,希望对你有一定的参考价值。

参考技术A 最近接收一个前后端分离的项目,本地环境启动之后总是报跨域问题:

经过一番费劲心思的排查,发现是浏览器的同源策略不允许跨域访问,所谓同源策略是指协议、域名、端口相同,proxyTable通过代理可以解决这个问题。
在config目录下的index.js设置

上方配置的目的就是将前端请求localhost:3000/api/xxx 代理为localhost:8081/api/xxx

Vue-cli proxyTable解决开发环境的跨域问题

和后端联调时总是会面对恼人的跨域问题,
如果是使用vue-cli生成的开发环境,直接在config/index.js中,把proxytable里面配置成差不多这样,后面的api就都会走target

changeOrigin参数,接收一个布尔值,如果设置为true,那么本地会虚拟一个服务端接收你的请求并代你发送该请求,这样就不会有跨域问题了,当然这只适用于开发环境。

反向代理

proxyTable: {
  ‘/api‘: {
    target: ‘http://xxx‘,
    changeOrigin: true,
    pathRewrite: {
      ‘^/api‘: ‘/api‘
    }
  }
}

当然,此时的api接口形式应该为/api/xxx,

补充回答:config中配置:

proxyTable: {
  ‘/api‘: {
    target: ‘http://picup.xxxx.net‘,
    changeOrigin: true,
    pathRewrite: {
      ‘^/api‘: ‘‘
    }
  }
}

请求:

 
get(‘/api/1/picture?method=upload‘)

 

https://vuejs-templates.github.io/webpack/proxy.html

 

vue-cli的这个设置来自于其使用的插件http-proxy-middleware
github:https://github.com/chimurai/http-proxy-middleware
深入了解的话可以看该插件配置说明,似乎还支持websocket,很强大的插件。

以上是关于vue 设置proxyTable解决跨域问题的主要内容,如果未能解决你的问题,请参考以下文章

vue proxyTable代理 解决开发环境的跨域问题

webpack之proxyTable设置跨域

vue-cli设置proxyTable 跨域

webpack之proxyTable设置跨域

vue-cli 配置proxyTable解决跨域 配置了但是无效,还是本地的服务器

Vue-cli proxyTable 解决开发环境的跨域问题