解决跨域

100 成功收到,请发出下一步指令
101 切换协议
200 请求成功
201 成功创建
202 成功接受
203 非授权信息。请求成功,但返回的meta信息不再原始的服务器,而是一个副本
204 无内容。服务器成功处理,但未返回内容。在未更新网页的情况下,可确保浏览器继续显示当前文档
300 多种选择
301 永久移动重定向
302 临时移动重定向
303 查看其他地址
304 未修改,不会返回任何资源。客户端会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回指定日期之后修改的资源
305 需要代理
306 已被废弃的http状态码
400 客户端发送的语法有误
401 需要身份认证
402 保留将来使用
403 拒绝请求
404 找不到相应资源
405 该请求方法已被禁止
406 服务器无法根据客户端请求的内容特性完成请求
500 服务器内部出错,无法完成请求
501 服务器不支持请求的功能
502 服务器在执行请求的时候收到了远程服务器一个无效的响应
503 超载或系统维护,服务器暂时无法处理客户端请求
504 充当网关或代理的服务器,未及时从远端服务器获取请求
505服务器不支持请求的http协议,无法完成处理

跨域

同源策略: 域名 协议 端口号 三个必须一致
安全策略

非同源的限制有
1.无法读取非同源网页的Cookie、LocalStorage和IndexedDB
2.无法接触非同源网页的DOM
3.无法向非同源地址发送AJAX请求

cookie可以做前端储存方案,有以下局限性

储存空间有限4k
存储有效时间有限制
存在cookie中的数据,在每次请求的时候都会把它带上,使得每次请求的数据都会无意义的增大
内容组成:
Name,cookie的名称
Value,值
Expires(生存期,默认为会话性,可以设置持久性保存在硬盘),
Path,定义web沾点可以访问该cookie的目录
Domain,指定了可以访问该 Cookie 的 Web 站点或域。Cookie 机制并未遵循严格的同源策略,允许一个子域可以设置或获取其父域的 Cookie。当需要实现单点登录方案时,Cookie 的上述特性非常有用,然而也增加了 Cookie受攻击的危险,比如攻击者可以借此发动会话定置攻击。因而,浏览器禁止在 Domain 属性中设置.org、.com 等通用顶级域名、以及在国家及地区顶级域下注册的二级域名,以减小攻击发生的范围
Secure,是否使用https安全协议发送
HTTPOnly,防止客户端脚本通过document.cookie访问,保护cookie不被夸张脚本攻击窃取或篡改

WEB Storage

local Storage永久储存
会话期间存储sessionStorage

优点:
储存空间5M
在浏览器发送请求时不带web storage里的数据
更加友好的API
local Storage是可以永久储存的
缺点:
5M还是太小
储存格式受限,只能存储string类型的数据,对于object类型的数据只能先用JSON.stringify()转换再储存

IndexedDB
indexedDB是一种使用浏览器储存大量数据的方法,他创造的数据可以被查询,并且可以离线使用
大多数时候使用异步API

它是一个key-value型数据库

跨域的解决方法

1.设置document.domain

相同主域不同子域的情况下可以使用这种方法
把两个都设置成父域

2.通过jsonp跨域
通过动态创建script,再请求一个带参数打的网址实现跨域通信
仅支持get

3.location.hash
原理是利用location.hash进行传值
假设a和b不同域,a向b传值,a创建一个iframe,让他的src指向b,b响应请求后就通过修改a的location.hash来传递值,a时刻监控location.hash的变化

4.CORS
跨域资源共享
分为两类:简单请求和非简单请求

CORS是一份浏览器技术的规范。定义了跨域资源访问的时候浏览器和服务器之间的通信方式,使用自定义的http头部允许浏览器和服务器相互了解,从而决定请求响应成功与否。
简单请求的时候,浏览器会直接发起一个跨域请求,并且在请求头中携带上Origin,用来说明本次请求来自哪个源。服务器接收到请求后,根据头信息来判断是否允许跨域,返回一个正常的http响应(如果允许,则响应头携带Access-Control-Allow-Origin等字段,并返回正常内容)。浏览器根据返回的头是否携带这些字段判断是否请求成功,没有就抛出异常
在这里插入图片描述

5.window.name

6.postMessage

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值