跨域问题产生的原因?

本文深入解析了跨域问题的产生原因,包括同源政策的限制,以及不同域名、端口和协议请求时出现的跨域情况。同时,文章列举了跨域问题对Cookie、DOM和AJAX请求的影响,并提供了三种解决方案:使用JSONP、通过nginx反向代理和CORS解决跨域问题。

前言:

有的时候在前后端分离的项目里,前端发起ajax请求后会出现请求不到后端接口的情况,会报403的错误,这种时候很大的可能就是出现跨域的问题。

正文:

1.为什么会产生跨域问题?

JavaScript出于安全方面的考虑,不允许跨域调用其他页面的对象,即同源政策。通俗的讲,为了安全所以浏览器进行了限制,所以不能进行跨域。

2.什么是跨域的问题?

浏览器从一个域名的网页去请求另一个域名的资源时,域名、端口、协议任一不同,都会出现跨域的问题。

3.跨域问题的举例

UrlaUrlb说明是否跨域
http://www.baidu.com/a.jshttp://www.av.com/b.js不同域名
http://www.av.com/a.jshttp://www.av.com/b.js同域名下不同文件
http://www.av.com/a.jshttp://www.av.com:8081/b.js同域名下不同端口
http://www.av.com/a.jshttps://www.av.com/b.js同域名不同协议
http://www.av.com/a.jshttp://123.126.36.188:22222/b.js域名和对应域名ip
http://www.av.com/a.jshttp://cang.av.com/b.js主域名相同子域名不同是(cookie不能访问)

4.如果出现跨域的问题,会限制什么?

共有三种行为受到限制。

  (1)Cookie、LocalStorage和IndexDB无法获取。

  (2)DOM无法获得。

  (3)AJAX请求不能发送。

虽然这些限制是必要的,但是有时很不方便,合理的用途也受到影响。

5.如何解决ajax请求的跨域问题

1.通过jsonp解决

2.通过nginx反向代理解决

3.通过CORS解决AJAX跨域                                                         

总结:

跨域的具体解决Demo后续会补上,如有意见不同请留言,我会及时回复,喜欢就点赞把,那是不断更新的动力。我是要成为财富自由的男人。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

开心的码字达

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值