网络-navigator.sendBeacon前言
navigator.sendBeacon 是浏览器的 API,用于在浏览器后台发送异步请求,它不会等服务端响应。 它可以用于在页面卸载或关闭的时候,发送数据,以及在不阻塞页面卸载的情况下发送数据。 使用 方法发送的请求是异步的,不会阻塞页面的卸载或关闭过程。 这对于需要在用户离开页面之前发送数据的情况非常有用。 优点 不受页面卸载过程的影响,确保数据可靠发送。 普通的 请求如 和 在页面关闭或者刷新、前进、后退等操作时 , 这些请求有可...
前端项目中的Server-sent Events(SSE)项目实践及其与websocket的区别在前端开发中,实时数据更
前端项目中的 项目实践 前言 在前端开发中,实时数据更新是提升用户体验的重要因素之一。 是一种高效的技术,允许服务器通过单向连接将实时数据推送到客户端。下面将从 的基本改变,使用场景展开了解,并提供一个实际案例来更好的理解如何在前端项目中应用 。 的主要特点 1. 单项数据流:数据从服务器推送到客户端。 2. 自动重连:在链接丢失时,浏览器会自动尝试重新链接。 3. 简单易用:基于 协议,不需要额外的库或协议。 的使用场景 适用于需要从...
如何减少 options 请求
想要回答这个问题需要先明白什么是简单请求和非简单请求 浏览器请求方式可以划分为简单请求和非简单请求 简单请求 简单请求你可以理解为那些不会对服务器造成风险的请求。根据 CORS(跨源资源共享,Cross Origin Resource Sharing) 的定义,简单请求必须满足以下条件: 使用 、 或 方法。 仅包含少量特定的请求头部,如 、 、 、 (但只能是 、 或 )。 不包含自定义的请求头部(即除了浏览器默认的上面那些)。 非简...
跨域及解决方案
同源策略是浏览器的一个重要安全机制,它用于限制一个来源的文档或脚本如何能够与另一个来源的资源进行交互。同源策略要求只有当两个URL的协议、主机和端口都相同时,才被认为是同源。否则,浏览器会认为它们是跨域的。 在早期,服务器端渲染的应用通常不会有跨域问题,因为前端代码和后端API都是在同一个服务器上运行的。随着前后端分离的出现,前端代码和后端API经常部署在不同的服务器上,这就引发了跨域问题。 先来看一下跨域问题怎么产生的: 首先我们在l...
GET和POST请求到底有什么区别
在前后端交互中, 和 是两种最常见的HTTP请求方法,它们有许多不同之处也有相同之处。 它们只是 HTTP 协议为了不同分工而规定的两种请求方式,所以它们的底层都是基于TCP/IP协议实现的,它们都可以实现前后端的双向交互。 GET多用于从后端 获取资源 ,并且 不会改变 后端的资源数据,比如用搜索引擎搜索。而POST多用于向后端 发送数据 ,以 创建/更新 资源,比如前端的注册/登录。 区别一:参数传递 这是最直观的区别,GET请求传...
同源策略、跨域相关以及script等标签带来的问题和处理方式
一、同源策略定义 同源策略(Same origin policy)是一种在web应用中重要的安全策略,用于限制一个源(origin)的文档或者它加载的脚本如何与来自另一个源的资源进行交互。这里的“源”由协议、域名和端口组成,只要这三者不完全相同,就算是不同源。 二、同源策略作用 1、防止信息泄露: 同源策略阻止恶意网站通过跨域请求获取用户在其他站点上的敏感信息。例如,禁止一个网页中的脚本访问另一个不同域的网页中的数据,包括读取、修改或删...
post为什么会发送两次请求?
\# 同源策略 在浏览器中,内容是很开放的,任何资源都可以接入其中,如 JavaScript 文件、图片、音频、视频等资源,甚至可以下载其他站点的可执行文件。 但也不是说浏览器就是完全自由的,如果不加以控制,就会出现一些不可控的局面,例如会出现一些安全问题,如: 跨站脚本攻击(XSS) SQL 注入攻击 OS 命令注入攻击 HTTP 首部注入攻击 跨站点请求伪造(CSRF) 等等… 如果这些都没有限制的话,对于我们用户而言,是相对危险的...
深入浅出HTTP2预检请求(CORS Preflight Request)_跨域预检请求
前言 在现代Web开发中, (Cross Origin Resource Sharing,简称CORS)是一项关键技术,它允许浏览器在不同源之间安全地执行Ajax请求。当一个来自不同源的请求涉及到一些特殊 HTTP 头部或者方法时,浏览器会先发送一个称为“预检请求”(Preflight Request)的OPTIONS请求以确认服务器是否允许这样的实际请求。本文将详细介绍预检请求的工作原理、应用场景以及相关配置。 什么是预检请求? 预检...
get请求参数放在body中?
与后端对接口时,看到有一个 请求的接口,它的参数是放在 中的 \ \ \ \ \ \ 请求参数可以放在 中?? 随即问了后端,后端大哥说在postman上是可以的,还给我看了截图 可我传参怎么也调不通! 下面就来探究到底是怎么回事 项目中使用 来进行 请求,使用 请求传参的基本姿势: 如果想要将参数放在 中,应该怎么做呢? 查看 的文档并没有看到对应说明,去github上翻看下 看看 在 文件中 可以看到像 、 、 、 方法,它们只接收...