跨域问题

什么是跨域问题:

1、前端调用后端接口时,如果不在一个域内,就会出现跨域问题。比如:我们的域名是:http://www.zjhTest01.com 我们却调用http://www.zjhTest02.com域名下的URl 就会出现跨域问题。

为什么会产生跨域问题:

1、浏览器的限制:浏览器考虑到安全问题,当浏览器发现发出的是跨域请求时,会进行校验,校验不通过就会报跨域问题。

2、发出的请求中,只要域名、端口任何一个不一样,该请求就是跨域请求。

3、发出去的请求是XHRHttpRequest请求时(type:xhr)则是跨域请求。如果发出去的请求不是XHRHttpRequest请求,即使发出去的请求不是本域的也不会出现跨域问题。比如使用图片标签<img src="http://www.baidu.com/logo"/>该请求是JSON请求,不是XHR即使请求图片资源的链接不是本域的也不会有跨域问题。

解决思路:

1、解除浏览器限制:可以在请求中指定参数让浏览器不去拦截跨域请求。

2、发出去的请求不是XHR请求,JSONP就是使用该思路去解决跨域问题。

3、服务提供方接口支持跨域请求:请求的响应头中额外增加某些字段来告知浏览器允许跨域调用。

4、调用方:通过代理的方式,比如:从浏览器中发出请求都是A域名的请求,在代理里,把指定的规则下的url转化到B域名,从浏览器看来,就是同一个域名了,就不会出现跨域问题。该解决方式称为:隐藏跨域

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值