前端跨域 web前端程序员,面试必备9种跨域产生原因和解决方案,附资料

栏目:国际 2021-11-29 21:53:04
分享到:
web前端程序员,面试必备9种跨域产生原因和解决方案,附资料

前言

前后端数据交互经常会碰到请求跨域,什么是跨域,以及有哪几种跨域方式,这是本文要探讨的内容。

一、什么是跨域?

1.什么是同源策略及其限制内容?

同源策略是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,浏览器很容易受到 XSS、CSFR 等攻击。所谓同源是指"协议+域名+端口"三者相同,即便两个不同的域名指向同一个 ip 地址,也非同源。

上述代码经过两次跨域,值得注意的是浏览器向代理服务器发送请求,也遵循同源策略,最后在 index.html 文件打印出{"title":"fontend","password":"123456"}

6.nginx 反向代理

实现原理类似于 Node 中间件代理,需要你搭建一个中转 nginx 服务器,用于转发请求。

使用 nginx 反向代理实现跨域,是最简单的跨域方式。只需要修改 nginx 的配置即可解决跨域问题,支持所有浏览器,支持 session,不需要修改任何代码,并且不会影响服务器性能。

实现思路:通过 nginx 配置一个代理服务器做跳板机,反向代理访问 domain2 接口,并且可以顺便修改 cookie 中 domain 信息,方便当前域 cookie 写入,实现跨域登录。

先下载nginx,然后将 nginx 目录下的 nginx.conf 修改如下:

// proxy服务器server { listen 80; server_name www.domain1.com; location / { proxy_pass http://www.domain2.com:8080; #反向代理 proxy_cookie_domain www.domain2.com www.domain1.com; #修改cookie里域名 index index.html index.htm; # 当用webpack-dev-server等中间件代理接口访问nignx时,此时无浏览器参与,故没有同源限制,下面的跨域配置可不启用 add_header Access-Control-Allow-Origin http://www.domain1.com; #当前端只跨域不带cookie时,可为* add_header Access-Control-Allow-Credentials true; }}

最后通过命令行nginx -s reload启动 nginx

// index.htmlvar xhr = new XMLHttpRequest;// 前端开关:浏览器是否读写cookiexhr.withCredentials = true;// 访问nginx中的代理服务器xhr.open;xhr.send;// server.jsvar http = require;var server = http.createServer;var qs = require;server.on { var params = qs.parse); // 向前台写cookie res.writeHead; res.write); res.end;});server.listen;console.log;

7.window.name + iframe

window.name 属性的独特之处:name 值在不同的页面加载后依旧存在,并且可以支持非常长的 name 值。

其中 a.html 和 b.html 是同域的,都是http://localhost:3000;而 c.html 是http://localhost:4000

// a.html

Ajax

AngularJS

第八阶段

前端构建工具

第九阶段

React

第十阶段

Vue

第十一阶段

8年开发老码农福利赠送:如果你对前端开发这门技术感兴趣,我自己整理的一份2019年最新前端学习资料,从最基础的HTML+CSS到各种框架和项目实战的资料都有整理,送给每一位学习前端的小伙伴。

关注小编回复‘学习’,领取资料

  • 阳泉市招生考试中心 扩散 阳泉市招生考试中心重要通知

    阳泉市2020年普通高中补录情况安排如下: 普通高中补报志愿时间:2020年8月19日8时至2020年8月20日18时。登录阳泉中考网填写普通高中志愿。 每所学校的短缺、最低补充控制线、学费和生源范围 补充说明: 1.所有空缺计

    ·21-11-29

  • 甜性关系 那个很快就和男人上床的女人后来怎样了?我采访了1100个女人

    读者求助:我17他26,很帅,交往3个月,之前他一直想那个我都以未满18拒绝了,昨晚他说1个月后满18了还不愿意就分手。我该怎么办啊,很喜欢他。当时我只回到:如果他这样逼你,而不是看你自身意愿,那建议分手。不然你很可能后悔,而且他

    ·21-11-29

  • 太史令 武则天身后的威胁 盗墓贼奈何不了的乾陵 太史令奏议险遭不测

    甘岭是唐高宗李治和武则天的陵墓。它的规模巨大,从684年到706年,用了22年。然而,自黄巢唐末以来,唐代皇陵遭受了盗墓贼的疯狂挖掘,甘岭宝藏也面临着严重的威胁。神奇的是,在1200多年的时间里,唐朝的皇陵被打开洗劫一空,但甘岭

    ·21-11-29

  • 神经衰弱综合征 如何鉴别神经衰弱与脑衰弱综合征

    神经衰弱是神经症的一种类型,而脑衰弱综合征是脑器质性精神障碍的早期症状,两者虽有许多类似的临床症状,但却有本质的不同。首先是发病年龄不同:神经衰弱多在青壮年起病,以20-30岁多见;脑衰弱综合征多起病于更年期左右,虽然

    ·21-11-29

  • 二谢帖 王羲之《二谢帖》之“左边剧”

    晋文中有时字很难解,而由组成的词就更难解了。就如王羲之《二谢帖》末行的三个字“左边剧”,如果我们没有对晋文习惯的深入理解,而以今天的汉语去释的话,那意思是不大同。这个“左”在此中是近,侧之义,也就是说这个“左边”

    ·21-11-29

  • 广博会 第28届广博会下周举行 首设防疫展

    经广东省政府和广州市政府批准,第二十八届广州博览会将于8月28日至31日在中国进出口商品交易会展馆举办。据介绍,这是抗击新冠肺炎疫情以来广州首次线下举办的大型综合性展览。 18日上午,广州市合作办联合广州市民政局、

    ·21-11-29

  • 红酒加雪碧的功效 喝红酒兑雪碧 这样做坏处很多

    今天没有限制 明天是无限的 很多人在喝酒的时候喜欢加点雪碧,尤其是红酒。你想在酒里加雪碧吗? 喝红酒比喝雪碧更有害 在葡萄酒中加入雪碧,不仅会破坏葡萄酒纯正的果味,还会通过加入大量的糖和气体,影响葡萄酒的营养和功

    ·21-11-29

  • 肯尼迪号航母 全球最强航母是“纸老虎” 肯尼迪号航母问题频出 美海军拒绝接收

    前段时间,美国在建的第二艘福特级航母遭遇火灾。面对这次小规模事故,不少军事专家感叹其建造过程太曲折。 “肯尼迪”号,被称为世界上最强的航空母舰 美国海军一直是世界上最强大的存在。在过去的几年里,美国船只的下水吨

    ·21-11-29