javascript - CORS 无缘无故阻止响应
问题描述
我正在向我的服务器发出 POST 请求,并且浏览器使用 CORS 策略阻止响应(缺少 Access-Control-Allow-Origin 标头),但是当我通过 Postman 请求相同的 url 时,标头就在那里。这是我来自 Postman 的响应标头:
当我尝试执行 POST 请求时,这是浏览器(在本例中为 chrome)错误:
这是怎么回事?
解决方案
在非简单请求的情况下,浏览器会向同一个 url 发出 preflight OPTIONS 请求,以检查服务器是否允许跨站点请求。因此,在我允许所有 CORS 限制的情况下为 OPTIONS 请求添加新路由解决了这个问题。
...
if (webServer.method() == HTTP_OPTIONS) {
webServer.sendHeader("Access-Control-Allow-Origin", "*");
webServer.sendHeader("Access-Control-Allow-Methods", "*");
webServer.sendHeader("Access-Control-Allow-Headers", "*");
webServer.sendHeader("Timing-Allow-Origin", "*");
webServer.send(204);
} else {
...
推荐阅读
- .net-core - 公共交通中的预定发布
- c++ - 使用时如何解决 C++ 中的编译终止错误
? - mongodb - 计算数组子元素中持续时间的“AVG”
- docker - 在 Dokuwiki Bitnami docker 镜像中添加和覆盖文件
- vue.js - 我正在使用 vuetify 并希望在下拉按钮的对象数组中呈现对象数组
- python - Python 扫描空文件列表
- java - 使用firebase进行身份验证时将用户引导到不同的活动
- dataframe - Parquet 文件给出异常:本地 dateTime 参数的 UTC 偏移量与偏移量参数不匹配
- iis - IIS 10 服务器未压缩 .x3d 文件类型
- c# - 找不到类型或命名空间,但我使用正确的引用