- 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/
我已按照此步骤设置我的服务器以启用 CORS。 https://docs.microsoft.com/en-us/aspnet/web-api/overview/security/enabling-c
这个问题在这里已经有了答案: How to resolve 'preflight is invalid (redirect)' or 'redirect is not allowed for a p
我尝试调用 CORS Rest API,但收到此错误: Failed to load resource: Preflight response is not successful 升级到 iOS10
我创建了一个 Firebase 可调用函数,返回一个简单的文本,但是当我在本地和我部署的应用程序上调用该函数时收到错误。 callable 函数是一个简单的函数,现在可以返回一些文本: exports
在 Windows 上使用 Firefox 45.8.0 ESR。 正在尝试加载 https://secure.scheduleonce.com/dana 页面未加载,在网络面板中我看到一个交叉的挂锁
我创建了一个 phonegap 应用程序,我在其中调用驻留在 nopCommerce 插件中的 WCF 服务。 发送 api 请求时出现以下错误: Cross-Origin Request Block
我在后端使用 vue 和 express + firebase 函数,但它一直给我这个错误。我部署了我的 firebase 函数并使用 localhost 来访问我的服务器。任何人都可以帮忙吗?谢谢!
我正在发出CORS POST请求,并将Content-Type标头设置为json。这会触发“预检选项”请求触发(这是好的,也是预期的) 此选项请求以200 OK响应,但这不是来自我的WebAPI应用程
前端:React 16.12.0 |后端:Spring 2.2.4.RELEASE 我目前面临有关预检 CORS 请求的问题。根据我的理解,每个非简单请求(例如带有授权 token 的 GET)都会触
我正在使用 Spring Boot 版本 2.0.0.M5 我的 JavaScript 应用程序在调用我公开的 Rest 端点时遇到问题。为了安全起见——我希望传入一个包含 api key 的 hea
我使用 Express 作为网络服务器,并使用客户端的同构获取模块来使用 XHR。 我的 Web 应用程序有三台服务器: 端口 3000 -> 管理网站 端口 3001 -> 公共(public)网站
我发现了几个类似的话题。然而,似乎还没有一个起作用。 问题 在我们当前的生态系统中,我们为我们的 http-apis 提供了三个服务器。两个用于测试,一个用于生产。 最近我们发布了使用 Angular
简单请求是满足以下条件的请求: HTTP 方法匹配(区分大小写)以下之一: 负责人 获取 发布 HTTP header 匹配(不区分大小写): 接受 接受语言 内容语言 最后的事件 ID Conten
我创建了登录 FE 并完成了它。和往常一样,我的 ajax goto 是 Axios。我的代码如下。 const baseUrl = http://localhost:5000/project/us-
我正在尝试向 WCF 服务(我拥有的)发出跨域 HTTP 请求。我已经阅读了几种处理跨域脚本限制的技术。因为我的服务必须同时适应 GET 和 POST 请求,所以我无法实现一些动态脚本标记,其 src
我使用react.js(在端口3000上运行)执行以下获取操作 var config = { headers: { 'Access-Control-Allow-Origin': '*',
我正在构建一个与 CakePHP 2.8 中实现的 REST API 对话的 Ionic 1 应用程序,使用 JSON Web Tokens (JWT)用于授权。 在未经授权的状态下,我的应用能够毫无
我创建了一个 RESTapi 来将数据插入我的数据库,它在 POSTMAN 扩展上工作得很好,但我在 angularjs http post 方法上遇到错误。 我的 Restapi 代码是在 yii2
我有一个带有 AngularJS 前端和 Web Api 2 后端的网络应用程序,它使用不记名 token 进行身份验证。 在 FireFox 和 IE 中一切都很好,但在 Chrome 中,我的初始
我正在构建一个网站,该页面使用 Jquery .load() 函数加载导航栏和一些其他资源(如下面的代码所示)。 $(function () { $("#na
我是一名优秀的程序员,十分优秀!