前言:
有的时候在前后端分离的项目里,前端发起ajax请求后会出现请求不到后端接口的情况,会报403的错误,这种时候很大的可能就是出现跨域的问题。
正文:
1.为什么会产生跨域问题?
JavaScript出于安全方面的考虑,不允许跨域调用其他页面的对象,即同源政策。通俗的讲,为了安全所以浏览器进行了限制,所以不能进行跨域。
2.什么是跨域的问题?
浏览器从一个域名的网页去请求另一个域名的资源时,域名、端口、协议任一不同,都会出现跨域的问题。
3.跨域问题的举例
| Urla | Urlb | 说明 | 是否跨域 |
| http://www.baidu.com/a.js | http://www.av.com/b.js | 不同域名 | 是 |
| http://www.av.com/a.js | http://www.av.com/b.js | 同域名下不同文件 | 否 |
| http://www.av.com/a.js | http://www.av.com:8081/b.js | 同域名下不同端口 | 是 |
| http://www.av.com/a.js | https://www.av.com/b.js | 同域名不同协议 | 是 |
| http://www.av.com/a.js | http://123.126.36.188:22222/b.js | 域名和对应域名ip | 是 |
| http://www.av.com/a.js | http://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后续会补上,如有意见不同请留言,我会及时回复,喜欢就点赞把,那是不断更新的动力。我是要成为财富自由的男人。
本文深入解析了跨域问题的产生原因,包括同源政策的限制,以及不同域名、端口和协议请求时出现的跨域情况。同时,文章列举了跨域问题对Cookie、DOM和AJAX请求的影响,并提供了三种解决方案:使用JSONP、通过nginx反向代理和CORS解决跨域问题。
1069

被折叠的 条评论
为什么被折叠?



