博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
nginx实现网关解决跨域问题(大型网关接口系统)
阅读量:5923 次
发布时间:2019-06-19

本文共 1740 字,大约阅读时间需要 5 分钟。

hot3.png

跨域问题:不同网站之间的请求连接,比如两台服务器之间

1	http://www.a.com/a.js        http://www.a.com/b.js               同一域名下	允许2	http://www.a.com/a/a.js        http://www.a.com/b/b.js            同一域名不同文件夹	允许3	http://www.a.com:8080/a.js        http://www.a.com:9090/a.js        同一域名不同端口号	不允许4	http://www.a.com/a.js        https://www.a.com/b.js             同一域名不同协议	不允许5      http://www.a.com/a.js        http://192.168.4.158/b.js            域名与域名对应的ip地址	不允许6	http://www.a.com/a.js        http://wwww.a.com/b.js            主域名相同,子域名不同	不允许7	http://www.a.com/a.js        http://www.b.com/b.js                不同域名	不允许

解决方案 ①ajax的jsoup 可以利用ajax的jsoup解决跨域问题,但是只能是get请求,而且大型公司都不这么用

基本上都是利用nginx网关代理实现跨域问题

项目中调用别人的接口,出现了跨域问题,利用ajax跨域问题,利用了jsoup进行获取,但是只能是get请求,后来用网关系统

②XHR2(修改请求头) “XHR2” 全称 “XMLHttpRequest Level2” 是HTML5提供的方法,对跨域访问提供了很好的支持,并且还有一些新的功能。修改了请求头,不安全,不推荐

  • IE10以下的版本都不支持

  • 只需要在服务器端头部加上下面两句代码:

header( "Access-Control-Allow-Origin:*" );header( "Access-Control-Allow-Methods:POST,GET" );

③使用后台服务转发 非常占宽带,不介意使用,所有服务都放到本站,所有请求都通过http转发。

比如说将A系统中的服务地址封装在B项目中的一个方法中利用HTTPClient去访问

实际就是B项目访问自己内部的一个地址,内部通过HttpClient去访问,安全,不会暴露接口,但是耗资源,会发生两次请求

④使用nginx搭建网关服务(推荐)

nginx.conf 新建两个location location /A location /B

这两个server之间访问是会出现跨域的问题。

server {        listen       80;        server_name  www.liaoxiang.com;        location /A {            proxy_pass  http://a.a.com:81/A;            index  index.html index.htm;        }        location /B {            proxy_pass  http://b.b.com:81/B;            index  index.html index.htm;        }    }

A项目的地址

B项目的地址

都是通过一个域名去访问,就不会出现跨域的问题

这里测试中,如果在

去调用

中的数据时会出现跨域问题的

但是如果都被nginx代理,然后通过

www.liaoxiang.com

去访问的话,同一域名下就不会出现跨域的问题

这样就可以在

中去调用

中的页面或者数据

不换行的话这里全在一起,不好看,这样的话还可以,域名比较清晰,理解一下

转载于:https://my.oschina.net/liaoxiang521/blog/1551892

你可能感兴趣的文章
stale element reference: element is not attached to the page document 异常
查看>>
JAVA-运算符&&和&的区别
查看>>
并查集简述 (HDU-1213-How Many Tables)
查看>>
robotframework使用过程中的若干问题
查看>>
C语言内存管理
查看>>
读书笔记--SQL必知必会02--检索数据
查看>>
C#关键字as出现的错误
查看>>
[九省联考2018]IIIDX
查看>>
陶哲轩实分析 习题 13.4.10
查看>>
Java并发编程——线程池的使用
查看>>
[转]Javascript 面向对象编程(一):封装
查看>>
golang交叉编译:Linux - Windows
查看>>
C#设计模式:装饰者模式(Decorator Pattern)
查看>>
python机器学习(2:KNN算法)
查看>>
ssh连接超时问题解决
查看>>
【经典算法】——KMP,深入讲解next数组的求解
查看>>
数独个人项目
查看>>
区间覆盖问题 贪心
查看>>
超级楼梯 递推动规
查看>>
Linux C 创建目录函数mkdir相关(转-清新居士)
查看>>