发表于: 2021-01-27 21:48:40
1 990
今天完成的事情:
1-前端垮域问题有哪些常用的解决方式
什么是跨域
跨域,是指浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对JavaScript实施的安全限制
什么是同源策略(同域)
同源指的是"协议+域名+端口"三者相同,同源策略实际上是浏览器限制一个域名与另外一个域名的资源的交互的规则
URL http://store.company.com/dir/page.html 的源进行对比的示例:
http://store.company.com/dir2/other.html 同源 只有路径不同
http://store.company.com/dir/inner/another.html 同源 只有路径不同
https://store.company.com/secure.html 失败 协议不同
http://store.company.com:81/dir/etc.html 失败 端口不同 ( http:// 默认端口是80)
http://news.company.com/dir/other.html 失败 主机不同
由于同源策略的存在,浏览器限制了跨域获取cookie,也限制了跨域DOM节点的访问,有效的防止的CRSF攻击
为什么会有跨域:
在前后端分离的模式下,前后端的域名是不一致的,此时就会发生跨域访问问题。在请求的过程中我们要想回去数据一般都是post/get请求
解决方式:
1.JSONP
JSONP 由两部分组成:回调函数和数据。回调函数是当响应到来时应该在页面中调用的函数。回调函数的名字一般是在请求中指定的。而数据就是传入回调函数中的 JSON数据
2.CORS
通过 XHR 实现 Ajax 通信的一个主要限制,来源于跨域安全策略。默认情况下,XHR 对象只能访 问与包含它的页面位于同一个域中的资源。这种安全策略可以预防某些恶意行为
3.Nginx反向代理:
跨域问题:同源策略仅是针对浏览器的安全策略。服务器端调用HTTP接口只是使用HTTP协议,不需要同源策略,也就不存在跨域问题
需要自己配置nginx:
2-js继承的几种方式
1.利用 call 借用构造函数继承
优点:实现了继承属性,但值都不相同
缺点: 无法继承父级类别中原型上的方法
2. prototype 实现继承:利用prototype,将Student 的prototype 指向 Person 来达到继承效果
优点:继承了父级原型上的方法
缺点: 实例化多个Student 都必须共用相同的name 和 age
3.组合继承
结合prototype和call方法实现继承
3-异步编程有哪几种方法来实现
1.回调函数
异步编程最基本的方法。回调函数的优点是简单,轻量级(不需要额外的库)。缺点是各个部分之间高度耦合(Coupling),流程会很混乱,而且每个任务只能指定一个回调函数
2.事件监听
采用事件驱动模式。优点是比较容易理解,可以绑定多个事件,每个事件可以指定多个回调函数,而且可以"去耦合"(Decoupling),有利于实现模块化。缺点是整个程序都要变成事件驱动型,运行流程会变得很不清晰
3.Promises对象
问题:
1不太明白原型链与继承关系
https://www.cnblogs.com/hushufang/p/3709516.html
2异步编程的Promises对象用法还没看完
3. network 什么意思不明白,网上资料直接搜索也很少
评论