同源策略及前后端(同源/跨域)通信

本文详细介绍了同源策略的概念及其在Web安全中的作用。探讨了不同源文档之间的交互限制,包括Cookie、LocalStorage等的读取限制,DOM访问限制及AJAX请求的限制。此外,还讨论了实现跨域通信的方法,如JSONP、WebSocket和CORS。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是同源策略和限制?

:= 协议 + 域名 + 端口

同源策略在MDN中有如下解释:
同源策略限制从一个源加载的文档或脚本如何与来自另一个源的资源进行交互。
这是一个用于隔离潜在恶意文件的关键的安全机制。

什么是限制
当源不一样时,就产生了跨域。不是一个源的文档没有权利去操作另一个源的文档。具体表现为:

  • Cookie、LocalStorage、IndexDB 无法读取
  • DOM 无法获得
  • AJAX请求无法发送

前后端如何通信?

  • AJAX(同源)
  • WebSocket(不受同源策略限制)
  • CORS(支持跨域也支持同源通信)

如何创建Ajax

  • XMLHttpRequest
  • 兼容性处理
  • 事件触发条件
  • 事件触发顺序

跨域通信的几种方式

  • JSONP
    (1)动态创建一个<script>标签,发送给服务端一个包含回调名callback,并且在本地创建一个与回调名相同的全局函数
    (2)服务端返回数据
    (3)浏览器将返回的数据当成js来执行

  • WebSocket

  • CORS          //可以理解为支持跨域通信的AJAX
  • Hash            //页面不刷新也能获取新资源
  • postMessage   //H5中新增的标准
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值