前端跨域

1.跨域概念

首先,跨域是浏览器行为!不要说自己是前端不管跨域事情了!很丢人的!
浏览器和服务器的合作判定跨域步骤如下:
1、浏览器根据同源策略(是否为同域名同协议同端口)对前端页面和后台交互地址做匹配,若同源,则直接发送数据请求。若不同源,则发送跨域请求。

2、服务器解析程序收到浏览器跨域请求后,根据自身配置返回对应文件头,若未配置过任何允许跨域,则文件头里不包含Access-control-Allow-origin字段。若配置过域名,则返回Access-control-Allow-origin + 对应配置规则里的域名的方式。

3、浏览器根据接受到的http文件头里的Access-Control-Allow-origin字段做匹配,若无该字段,说明不允许跨域,若有该字段,则对字段内容和当前域名做对比,如果同源,则说明可以跨域,浏览器发送请求。如果不同源,则说明该域名不可跨域,不发生请求。

在跨域过程中,服务器实际上已经进行了返回,而浏览器端会根据同源策略阻止返回,所以跨域是浏览器行为。

2.成熟的解决方法

只有CORS和反向代理,不要扯别的落后方法了!
CORS:修改服务器端的字段,允许某一个源的服务器进行请求访问。

反向代理:因为Nginx不是浏览器,而是服务端通信,后者不用遵守同源规定,自然不存在跨域问题

全部评论

相关推荐

07-11 22:27
中南大学 Java
程序员牛肉:学历的话没问题。但是没问题的也就只有学历了。 其实你的整体架构是正确的,博客接着干。但是项目有点过于简单了。从后端的角度上讲,你这也就是刚入门的水平,所以肯定约面试够呛。 如果你要应聘后端岗位,那你第一个项目竟然是仿写操作系统。这个你要面试官咋问你。你一定要记住一点,你简历上写的所有的东西,都是为了证明你有能力胜任当前的岗位,而不是为了证明你自己会什么。 如果你只是浅浅的做几个项目,描述也都是烂大街。技术点也都是各种混水类的配置类需求,那你就不要幻想自己能走多远。一定要保持思考,保持学习。
点赞 评论 收藏
分享
07-18 18:45
已编辑
中山职业技术学院 Java
投递TP-LINK等公司7个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务