vue项目上传到linux后的跨域问题

我们都知道,在本地调用外部接口返回json对象,遇到跨域问题一般可以通过jsonp或者设置跨域代理的方式实现跨域请求问题,但是当vue打包上传到liunx就失效了,怎么解决,我的liunx配置了tomcat和nginx,之前在网上找的方法在nginx设置跨域,但是我的nginx已经设置了和tomcat的反向代理,在设置跨域代理的后果是我的nginx重启报错,说端口号被占用,所以该怎么解决跨域问题

本地配置跨域代理

在conf文件夹里面分别对index.js prod.env.js dev.env.js配置

但是上传到liunx怎么做?

 

重启之前,将原来的nginx杀死,我估计你不是重启,是直接启动,所以端口被占用了。杀死nginx,再启动就没事了。

设置vue项目,如果环境是pro,baseURL设置成特定开头,例如/daili/,,然后nginx设置将/daili/代理为后端IP端口就可以了。

首先,你的问题是要解决跨域问题还是说端口号占用报错问题?如果是端口号占用报错,找一下冲突的进程,kill掉就好了。如果是跨域问题,跨域访问用nginx和cors都是可以的:1、nginx代理,理论上就是端口不一样,可以指定80端口代理静态前端工程,代理接口访问路径里面的pass_proxy指向本地tomcat的接口地址;2、cors,不用nginx,tomcat设置支持预检请求就行。

打包之后的跨域你配置了么  开发环境和正式环境的区分没有

跨域是浏览器判断的,只要对浏览器来说,它访问的vue前端和后台的ip、端口号一致就行了。

所以,只要用nginx的一个端口号同时代理vue和后台,浏览器访问时直接访问nginx的代理地址就可以了