问题标签 [preflight]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 使用子域时防止预检选项
给定两个子域:
web.mysite.com
和api.mysite.com
web.
当前从to发出任何请求都会api.
导致发出预检 OPTIONS 请求。如果它不在中国的请求中增加额外的 600 毫秒,这将不是什么大问题。
有人告诉我,document.domain = 'mysite.com';
在 JS 中设置可以解决问题,但这根本没有帮助。
发送到不同的子域时是否有可能/如何禁用 OPTIONS 请求。
symfony1 - Symfony 1.4 中的路由:有没有办法允许 sf_method = OPTIONS 用于预检 HTTP 请求
你们都可能知道浏览器在某些情况下会执行预检 HTTP 请求: https ://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS#Preflighted_requests
我的 Web 应用程序仍在 Symfony1 上。我想实现一个 RESTful 服务,因此使用 Symfony 路由来允许特定的 HTTP 请求方法,如 GET 或 POST ( http://symfony.com/legacy/doc/reference/1_4/en/10-Routing#chapter_10_sub_sf_method )。
例子:
在我看来,不能将 OPTIONS 请求定义/处理为 sf_method 值。因为如果我的想法是正确的,我找不到任何信息,所以我想知道我是否正确,或者我也找不到解决方案。
提前致谢!
spring - Spring Boot 在 OPTIONS 预检中吞下 Access-Control-Request-Headers
我有一个 Spring Boot REST 应用程序,上面有一个非常简单的 CORS 过滤器。我想要做的是动态响应 Access-Control-Request-Headers 标头中的值,而不是提供特定的列表。普遍的看法似乎是明确设置“Access-Control-Allow-Headers”中返回的值,但是我们会将一组来源列入白名单,并希望允许它们发送的任何标头。我找不到在 Access-Control-Request-Headers 中复制 Access-Control-Allow-Headers 值的方法。
这是代码
使用来自 Chrome 的请求和响应(当我们硬编码 Access-Control-Allow-Headers 的值时)
这是错误
XMLHttpRequest 无法加载 https://myapp.com/gradebooks/5566669e-e4b0-d05e-0150-98d7ffffffff/assignments/3ad7f1e7-679b-4d8b-856e-d2e3589eaad6。Access-Control-Allow-Headers 不允许请求标头字段 Content-Type。
我在过滤器中发现的调试是 Access-Control-Request-Headers,只有那个标题,在它到达过滤器时丢失了。拼错标题并且它到达了,所以似乎有东西在拦截标题并在它到达我的过滤器之前将其丢弃......
google-chrome - Chrome 不缓存预检
我正在实现一个应该支持跨域请求的 REST API。使用 CORS 我想实现这一点。几乎我的所有请求都是“不简单的”,这意味着对于所有非 GET 请求,必须由浏览器发送预检请求。
为了限制预检/OPTIONS 请求的数量,我尝试让浏览器缓存 OPTIONS 请求。这似乎适用于 Firefox 和 Safari,但不适用于 Chrome。我知道 Chrome 只会将预检请求缓存 10 分钟,但就我而言,似乎根本没有缓存。
这些是 Chrome 发送/接收的 HTTP 请求和响应:
要求:
回复:
cors - MVC6 Cors - 拦截预检
我正在将我的 WebApi(s) 升级到 MVC6。
在 WebApi 中,我可以拦截每个 HTTP 请求,如果是预检,我可以使用浏览器接受的标头进行响应。
我试图弄清楚如何在 MVC6 WebApi 中做同样的事情。
这是 WebApi 代码。
我如何用 MVC6 做同样的事情?
谢谢,鲍勃
这是我基于反馈的下一次尝试。如果我了解中间件管道,我可能会自己解决这个问题。我现在当然会学习它。
我尝试了这段代码,但它并没有像我希望的那样命中 http 请求。
post - IIS 拦截预检 MVC6
我正在尝试启用 CORS,以允许我的 Angular 应用程序与新的 MVC6 Web Api 对话。
“GET”有效,但“POST”无效,因为首先发送了 CORS Preflight。IIS 拦截此预检并做出响应。
在 WebApi2 中,我能够通过以下 web.config 设置阻止 IIS 拦截预检。
然后我可以询问请求并返回我想要的“OPTIONS”标头。
我可以在新的 MVC6 WebApi 中完成这两项工作,但由于某种原因,我无法让 IIS 停止拦截“OPTIONS”预检。
我在 MVC 中使用这段代码,我相信如果我只能让 IIS 停止拦截“OPTIONS”请求,它就可以工作。
有没有人处理过这个问题或者有一个使用 CORS 的 MVC6 的工作示例?
谢谢
javascript - 来自 IE 或 Firefox 的 CORS 请求中没有 Referer 标头
我正在尝试向服务器发送 CORS POST 请求。
在 Chrome 中,这按预期工作 - 将 OPTIONS 预检请求发送到服务器,服务器使用访问控制标头进行响应,发送 POST 请求。当我尝试在 IE 或 Firefox 中执行此操作时,不会随 OPTIONS 请求发送引用者,因此我无法添加 access-control-allow-origin 标头(因为这是以编程方式完成的)。
Javascript是:
有没有办法保证推荐人将与 OPTIONS 预检请求一起发送?如果没有 - 是否有另一种方法来获取引用 URL,以便我可以添加允许来源标头?
stackexchange-api - 选项 对 stackexchange api 的预检以 BAD REQUEST 响应
我整天都在用头撞这个。尝试从我的 web 应用程序发布到 stackexchange 时,我的请求不断收到 400 BAD REQUEST。我一直在使用提琴手来尝试欺骗请求,但我似乎无法让它通过。有谁知道原因是什么,以及我应该如何提出我的请求?
示例请求
回复
使用 JSON
cors - CouchDB 中的 _users 数据库不允许使用 HTTP OPTIONS 方法
我正在尝试从从另一个域连接到 CouchDB 的应用程序中更改用户密码。我的代码或多或少与CouchDB Docs中的示例相同,即获取文档,更改数据,然后将更改的 PUT 请求发回。PUT 请求出现问题 - 由于 CORS,浏览器尝试在发送 PUT 请求之前执行 OPTIONS 请求,但 OPTIONS 请求返回 405 Method Not Allowed。
有谁知道如何解决这个问题?
以下是请求标头以防万一:
cors - 如何识别 CORS 预检请求?
CORS 预检请求显然使用 OPTIONS 方法并具有 Origin 标头。但是,浏览器可以决定为任何HTTP 请求添加 Origin 标头。此外,OPTIONS 可用于 CORS 以外的其他功能。(如何)我能否准确识别(没有误报或否定)请求是否是 CORS 预检请求?