跨域问题

跨域问题是开发中常见问题,由浏览器安全机制导致,当请求访问域名与ajax请求地址不一致时,浏览器无法接收回请结果。文中介绍了多种解决办法,如前端用jsonp请求,后端添加请求头,还可使用接口网关、httpclient内部转发,或利用k8s网络配置插件。

跨域问题,也是一个开发中经常遇见的一个实际问题了。

 

首先来说说跨域是怎么产生的?

  产生跨域问题,其实是浏览器的安全机制导致的。当请求访问的域名与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设置请求允许跨域访问:示例如下图:

 

转载于:https://www.cnblogs.com/spll/p/10565959.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值