前端用veu跨域访问接口,在dev模式下的时候使用proxyTable代理,但是在打包上线是发现还是出现了跨域问题。
果然,proxyTable只能在dev模式使用,解决跨域问题还是要配置服务器的代理。
服务器是Apache,从网上找到的资料,设置的方法如下。
https://segmentfault.com/a/1190000007352990
1. 在xampp或者wamp安装目录下,修改httpd.conf配置文件,去掉以下两行前面 # 号,从而启用Apache proxy module。
LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_http_module modules/mod_proxy_http.so
Ubuntu:
sudo apt-get install libapache2-mod-proxy-html sudo apt-get install libxml2-dev sudo a2enmod proxy proxy_http
2. 找到httpd-vhosts.conf配置文件,在virtualHost里面配置反向代理,完成之后的配置代码如下:
<VirtualHost *:80>
ServerName www.name.local
DocumentRoot D:WWW
ame
<Directory D:WWW
ame>
Options Indexes FollowSymLinks ExecCGI
AllowOverride all
Order deny,allow
allow from all
</Directory>
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass /api http://baidu.com/api
</VirtualHost>
- ProxyRequests Off 指令是指采用反向(reverse)代理
- ProxyPass 指令允许将一个远端服务器映射到本地服务器的 URL 空间中。
- 配置完成之后,访问 http://www.name.local/api 实际就是访问http://baidu.com/api上的资源。
3. 重启Apache,重命名之前本地的后端代码文件夹(反正让本地后端代码不能够正常运行即可),然后测试一下看api数据读取是否正常。若api数据读取正常,那么Apache反向代理设置成功并且正常工作。