- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我创建了登录 FE 并完成了它。和往常一样,我的 ajax goto 是 Axios。我的代码如下。
const baseUrl = http://localhost:5000/project/us-central1/api
Axios.post(
`${baseUrl}/v1/user/login`,
{ ...data },
{
headers: {
Authorization: 'Basic auth...'
}
},
).then(r => console.log(r).catch(e =>console.log(e));
现在,当我尝试向我的本地 firebase 云函数发送请求时。我收到 400 错误请求。
检查请求后,我想知道为什么它没有发送任何预检请求,而它应该这样做(据我所知),但我看到了一个名为 Sec-Fetch-Mode
的 header .我在任何地方搜索它有点抽象。而且我似乎无法弄清楚为什么我的请求仍然失败。
我的 axios
配置中是否缺少任何内容? ?
我的 FE 在名为 live server(http://127.0.0.1:5500)
的 VSCode 插件 上运行
此外,我的 firebase 云功能已启用 cors
// cloud function expres app
cors({
origin: true
})
任何见解都会非常有帮助。
最佳答案
OPTIONS
实际上正在发送请求,因为您正在发送带有 Authorization
的跨源请求被认为是非简单的 header 。由于 Chrome 76 和 77 中的功能/错误,它不会显示在开发人员工具中。请参阅 Chrome not showing OPTIONS requests in Network tab获取更多信息。
预检请求是一种机制,如果服务器不知道 CORS(例如:旧的且未维护),或者如果它明确想要拒绝,则允许在浏览器端拒绝跨域请求跨源请求(在这两种情况下,服务器都不会设置 Access-Control-Allow-Origin
header )。 CORS 所做的可以在服务器端通过检查 Origin
来完成。 header ,但 CORS 实际上在浏览器级别保护用户。它甚至在发送之前就阻止不允许的跨域请求,从而减少网络流量、服务器负载,并防止旧服务器默认接收任何跨域请求。
另一方面,Sec-Fetch-Mode
是 Fetch metadata headers 之一( Sec-Fetch-Dest
、 Sec-Fetch-Mode
、 Sec-Fetch-Site
和 Sec-Fetch-User
)。这些 header 旨在通知服务器有关发送请求的上下文。基于这些额外的信息,服务器能够确定请求是否合法,或者干脆拒绝它。它们的存在是为了帮助 HTTP 服务器减轻某些类型的攻击,与 CORS 无关。
例如好老<img src="https://mybank.com/giveMoney?amount=9999999&to=evil@attacker.com">
可以在服务器端检测到攻击,因为 Sec-Fetch-Dest
将设置为 "image"
(这只是一个简单的示例,暗示服务器使用 GET
方法公开端点,并使用不安全的 cookie 进行货币操作,这在现实生活中显然不是这种情况)。
总而言之,获取元数据 header 并不是为了取代预检请求而设计的,而是为了与它们共存,因为它们满足不同的需求。而 400 错误可能与这些无关,而是与不符合端点规范的请求有关。
关于firebase - Sec-Fetch-Mode 而不是 Preflight,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57518225/
我已经包含了在我的 html 页面中显示我的页面中的用户名。 我还找到了显示相同的内容。 我需要知道的是,这些方法之间从 LDAP/DB 中选取用户名的方式是否有区别?哪种方法可以保持最佳响应时间?
情况:我使用(php)cronjob 来保持我的数据库最新。受影响的表包含大约 40,000 条记录。基本上,cronjob 会删除所有条目并随后插入它们(具有不同的 ofc 值)。我必须这样做,因为
每个与 sec:authentication="..."无论是否登录都会显示。甚至是明确的false导致div出现。 另一边与sec:authorize="..."即使有明确的 true 也是隐藏的.
我正在关注 rfc6455 : Concretely, if as in the example above, the |Sec-WebSocket-Key| header field had the
Timespan(0,0,secs) 和 Timespan.FromSeconds(secs) 的返回值有区别吗? 在我看来,不同之处在于 FromSeconds 接受 double。 最佳答案 最终
美好的一天,就我而言,一切都很好,并且在 localhost ide 上运行良好,但在 linux thymeleaf 下的站点上 sec:authorize 和 sec:authentication
我有一个 UIView 子类,在某些情况下我需要改变它的颜色一段时间,比如 5 秒,然后再改变颜色,我使用的方法是 performSelector:afterDelay: 和我传入的选择器是将颜色改回
测试之间的唯一变化是更改 TLS 版本。 Chrome 和 FireFox 之间的行为是相同的。 TLSv1 和 TLSv1.1 均达到 90 兆字节/秒。他们在 Java 6 (TLSv1) 和 J
我在数据框中有一个时间详细信息作为文本。 dict1={'time' : ['2 min 19 sec','2 min 43 sec','1 min 33 sec','32 sec','40 sec'
这里我们先学习 SECS-II 协议,给我的感受是先学完 SECS-II 协议,再去学习 SECS-I 和 HSMS 协议更加容易理解,所以这里我先介绍 SECS-II 协议。 文章的
03、SECS-I 协议介绍 上一篇我们学习了 SECS-II 协议,对 SECS-II 协议有了初略的了解,现在我们再来一起学习 SECS-I 协议。 文章的内容基本上来自参考
这里的 super 新手有一个 friend 帮助我制作了这个用于查看对冲基金 13fs 的网络爬虫。之前它运行良好,但最近我遇到了这个错误: response_two = get_request(s
我想创建一个条形图,其中 y 轴使用“min:sec”作为标签。但是,我要显示的数据以秒为单位。现在最好的方法是什么? zone time_in_zone 1 305
文件名first.java package p1; public class first { int a; public void display() { System.out.pri
我正在尝试读取和存储名为xx.sec.gz.的文件。正在下载该文件很好,但是其中存在的数据完全不同(无法读取)。我使用了retrbinary .....除了retrbinary之外,python中存在
class Win32_PerfRawData_Tcpip_NetworkInterface : Win32_PerfRawData { uint32 BytesReceivedPerSec;
我试图在 Matlab 中绘制一些关于分钟而不是秒的数据作为格式化时间,即 min.sec。 我有实时数据流,在收到每个样本的地方,它的时间以秒为单位也被发送。然后我根据时间绘制它们。现在,由于我的
我在这里面临一个棘手的情况。我有一个基于 java 的应用程序,它试图通过 scp 远程机器复制某些文件。在执行这些任务时,我从应用程序端发现以下错误消息。 scp protocol error mt
我创建了一个弗兰肯斯坦式的音频播放器,并且在轨道计时方面需要一些帮助。我现在有了它,所以它从 0 开始计数 -> 无论轨道时间是多少,以秒为单位。我似乎不知道如何将这些秒转换为分钟:秒。 我是使用 J
我有一个带有以下 View 代码的Spring + Thymeleaf项目。 Contacts Welcome to the site! Wrong us
我是一名优秀的程序员,十分优秀!