- 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/
我正在开发基于桌面 (Windows 7) 的应用程序,并使用 Qt Creator v 5.6.0 开发程序。我有一个非常奇怪的问题,即 我的程序在 DEBUG 模式下崩溃,但在 RELEASE 模
我爱org-tables ,我用它们来记录各种事情。我现在正在为 Nix 记录一些单行代码(在阅读了 Domen Kožar 的 excellent guide 后,在 this year's Eur
org-mode 是否有一个键绑定(bind)可以在编号/项目符号列表项之间移动,就像您可以对标题一样? 喜欢的功能: org-forward-heading-same-level 大纲下一个可见标题
我知道这有点小,但它一直困扰着我。我正在为一个项目使用 Org-mode,我倾向于经常导出为 PDF 或 HTML,这使我的目录中散落着 PDF、Tex 和 HTML 文件。有没有办法将 Org 模式
有什么方法可以让 org-mode 继续编号列表而不是重新启动? 这是情况。你列了一个类似的列表: Sometimes you can restart the display by doing som
如何在组织模式文件中生成所有标签的枚举列表(例如 :tag:)?假设我有一个以下形式的列表: * Head1 :foo:bar: ** Subhead1 :foo: * Head2
我正在使用 org-mode(Emacs:24.3.1,org-mode: 7.9.3f 8.0.6)作为不同代码片段的数据库语言(目前主要是 elisp 和 python)。这在使用 org-mod
相关问题:org-mode: fontify code blocks natively 截至 2012 年 11 月 1 日,我已经获得了最新的 org-mode 和 emacs 版本(组织存储在 o
有谁知道在使用 ido 模式时区分 dired 模式缓冲区名称与迷你缓冲区中其他类型缓冲区的好方法吗?例如...在 dired 模式缓冲区名称末尾显示正斜杠? 最佳答案 您可以简单地更改dired-m
在这个示例脚本中 import argparse parser = argparse.ArgumentParser() parser.add_argument('--modes', help="tes
我第一次学习“操作系统”。在我的书中,我发现了关于“用户模式”和“内核模式”的这句话: "Switch from user to kernel mode" instruction is execute
我刚刚下载了 Processing 2.0 并尝试从“模式管理器”安装 Android 模式。但是在安装时出现错误提示:“无法将模式“Android 模式”移动到速写本”。我怎样才能摆脱这个错误? 最
在 android L 中,我尝试将相机闪光灯模式设置为 TORCH,它工作正常,但我无法将其更改回闪光灯模式 AUTO 或闪光灯模式 打开。我只能返回闪存模式 OFF。我尝试了像 camera360
有 2 台机器,A 和 B。有 2 个分支,p16 和 c2。 A 有一个 ext3 文件系统,但在 B 上,存档位于带有 vfat 的 truecrypt 驱动器上,mount 显示 rw,uid=
我有 linum-mode在我的 Emacs 配置中全局启用。全局启用意味着它也适用于不受欢迎的速度条。 我为这个问题找到的唯一建议是在存档的 Emacs 帮助邮件列表中,它建议以下 speedbar
Google Cloud Firestore 将很快取代旧的 Google Cloud Datastore。然后可以选择在“ native 模式”或“数据存储模式”下使用 Cloud Firestor
org-mode的版本我的版本 Emacs 附带的(24.5.2) 是 8.2.10 .我已安装版本 8.3.1从 ELPA 并将其添加到我的 init 文件中: (add-to-list 'load
The org-mode manual指出 org-mode 将“”“...在 shell 链接”“”中执行命令,但它不显示此类链接的语法。 我希望能有一个简单完整的示例来说明这种 shell 链接是
我正在尝试在 emacs 24 中使用 dart 模式和 d 模式。如果我单独使用任何一种模式,一切都很好。如果我分别对每种类型的文件使用这两种模式,我在尝试缩进 D 代码时会出错。 以下是在初始化时
我的应用程序中有 CupertinoDatePicker 以使用以下代码选择日期和时间: formatColumn( widget: Consumer( builder: (_, mcProvide
我是一名优秀的程序员,十分优秀!