使用Apache反向代理解决js跨域请求的一个方案

作为一个对后台知识一知半解的小白,你让我配置后段代码,说实话是真的难为我了,所以,找一个好的解决方案对我这种后台知识一知半解的小白来说是很有必要的,这个方案就是反向代理,这是解决js跨域请求的一种解决方案。我们百度一下跨域请求的解决方案会发现有很多解决方案,在一种简便、高效、常用的解决方案很重要,尤其是着一种适合自己并适合团队开发的案例很重要。好的废话有点多了,我就说一下对于团队开发来说很重要的开发方式服务器(Apache)的反向代理。

什么是反向代理

说道反向代理,我们就会想到,会不会有正向代理,答案是肯定的。我们知道反向代理是可以解决js跨域请求的问题的,在请求时会隐藏服务器端,用户不用管服务器端是那个服务器像我们提供了资源,那么正向代理呢,正向代理就是隐藏客户端,这种方式可以解决 墙的问题,如我们不能访问Google,我们可以在国外搭建一个服务器,使用正向代理就可以实现翻墙,我们使用的翻墙软件就是用这种方式解决的。

反向代理的优势

总结为一条就是节约时间。怎么讲呢,前端开发需要掉用接口,如果要从 服务器下载代码到本地需要花费时间内吧,下载完毕,配置本地环境需要时间吧,如果遇到像我这样的小白不会配置,就要浪费时间和浪费人力了,与此同时大家都知道,配置服务器环境有一点不一致将会发生api接口就会发生错误。

方案介绍

我最近的一个项目仿照了中国林业产权交易所的echarts图,要实现如下图的效果。

img_038e9e099a964ef414ffae37be664601.png
效果图

第1步,你需要搭建一个本地的服务器,我是用的是wampserver这样一个集成软件,安装简单,操作方便。
第2步,找到文件httpd.conf(文件在 wamp64\bin\apache\apache2.4.18\conf\ 目录下)

LoadModule proxy_module modules/mod_proxy.so wapserver3.04 144行

LoadModule proxy_http_module modules/mod_proxy_http.so wapserver3.04 152行

去掉这两列前的‘#’,
第3步,找到httpd-vhosts.conf()

#
# Virtual Hosts
#

<VirtualHost *:80>
 ProxyRequests off
 <Proxy *>
     Order deny,allow
    Allow from all
</Proxy>
ProxyPass /news http://www.chinaforest.com.cn/forest-main/news
</VirtualHost>

其中,ProxyRequests off,就是反向代理的意思,而 ProxyPass /本地服务器的URL空间 远端的服务器,配置完成后,就可以使用http://localhost/news/ 代替http://chinaforest.com.cn/forest-main/news的访问

第4步,当你调用接口你会发现在chrome浏览器中提示如下图的[Provisional headers are shown],
你可以在服务器端 添加 echo header("Access-Control-Allow-Origin:*");

img_a79ba72c97f908a97e82fdbe5b05d3a0.png
[Provisional headers are shown](http://blog.csdn.net/wyfhist/article/details/38511319)

最终结果,在控制台中查看代理xhr如下图:

img_9f21c4f2a2a38791bb4741c35495984e.png
结果
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值