分布式跨域解决方案
什么是跨域问题
两个项目之间使用ajax实现通讯,如果浏览器的访问的域名地址和ajax访问的地址不一样,那么浏览器的默认安全机制会阻止此请求,导致无法获取返回结果。
如何解决跨域问题
1.使用jsonp,一般会前端的小伙伴都应该知道怎么配置(缺点,只适合于get请求,不支持post请求,使用麻烦。 2.使用httpclien进行转发, 前端先发送一个请求到后台,然后后台接口使用httpclient调用实际逻辑接口。(效率低,发两次请求) 3.设置响应头,允许跨域(有数据会配置了还是会出现跨域问题)
response.set('Access-Control-Allow-Origin', '*');
4.使用nginx,nginx有一个功能叫做反向代理,即为我们所有的请求,都发送给nginx然后由nginx进行转发,这样就不会出现跨域了。
server{
# 监听8080端口
listen 8080;
# 域名是localhost
server_name localhost;
#凡是localhost:8080/api这个样子的接口,都转发到真正的服务端地址http://localhost:1616,这就是#nginx的反向代理特性
location /api {
proxy_pass http://localhost:1616;
}