跨域问题
跨域问题,也是一个开发中经常遇见的一个实际问题了。
首先来说说跨域是怎么产生的?
产生跨域问题,其实是浏览器的安全机制导致的。当请求访问的域名与jaxa请求地址不一致的时候,浏览器无法接收到ajax回请的结果。这便产生了跨域问题。
举个栗子:
当你的网站域名是http://www.a.com,在www.a.com/a/a.jsp这个页面,你写了一个ajax请求,要请求http://www.b.com/b/b的服务器的接口,请求返回的结果是接收不到的。因为浏览器默认网站资源必须在同一个域名请求下。
辣么怎么解决跨域问题呢?
1、使用jsonp请求格式,但是jsonp只支持get请求,不支持post请求 (前端使用的办法)
2、使用接口网关处理:nginx、或springcloud的zull (一般在公司项目开发中,大项目公司都会用这种解决办法)
3、使用httpclient内部转发
4、添加请求头header设置请求允许跨域访问 (后端使用的办法)
5、如果公司用了k8s服务平台,也可以用k8s上的网络配置插件解决跨域问题,我太久没看了,k8s里面好像有个统一把外网ip地址映射成内网ip地址的配置,这样也就解决了跨域问题
4、添加请求头header设置请求允许跨域访问:示例如下图: