当我们前端要调用跨域接口时,需要使用代理来解决跨域问题,比如Vue的proxy配置proxy,但是当Vue项目打包成静态文件时,它的代理就会失效,因为代理的前提是本地必须有服务。本章将讲述如何在生产环境中作为Vue项目的代理。本章我们从两个方面来讲解Vue的跨域解决方案,一个是本地开发环境,一个是生产环境(nginx解决vue跨域问题)1.Vue的本地(开发环境)解决方案跨域流程如下(1)打开config/index.js,在proxyTable中添加如下代码:proxyTable:{'/api':{//使用"/api"代替"http://f.apiplus.c"target:'http://f.apiplus.cn',//源地址changeOrigin:true,//更改源路径Rewrite:{'^/api':'http://f.apiplus.cn'//pathrewrite}}}(2)请求接口时添加'/api'前缀getData(){axios.get('/api/bj11x5.json',function(res){console.log(res)})2.解决生产环境跨域问题的过程如下(1)打包我们通过win+R命令打开CMD窗口,找到我们的项目根目录,运行npmrunbuild命令(2)安装nginx服务器上的服务器安装步骤https://www.cnblogs.com/AlanLee/p/9044644.html(3)配置nginx找到nginx配置文件nginx.conf,其路径为/etc/nginx/nginx.conf进行配置nginx.conf如下server{listen8000;服务器名称本地主机;#charsetkoi8-r;#access_log日志/host.access.logmain;location/api{proxy_passhttps://www.baidu.com;#代理域名add_header'Access-Control-Allow-Origin''*';add_header'Access-Control-Allow-Credentials''true';}位置/{root/var/www/vue/;索引索引.html索引.htm;}}解释如下:https://www.baidu.com是我们要代理的域名add_header是增加返回头,解决跨域问题注意:vue项目必须在前面加上"/api请求的域名"string,请求示例如下test.post('/api/product/getData',params)
