CORS - 从 Postman 伪造 CORS 预检无法返回标头

Posted

技术标签:

【中文标题】CORS - 从 Postman 伪造 CORS 预检无法返回标头【英文标题】:CORS - Faking a CORS preflight from Postman fails to return headers 【发布时间】:2016-04-28 03:18:12 【问题描述】:

如果我伪造来自 Postman 的 OPTIONS 预检 CORS 请求,我不会从我的 API 中取回 CORS 标头。

【问题讨论】:

【参考方案1】:

在对 Microsoft.Owin.Cors 库进行完全逆向工程后,我发现请求中没有标头!

这使我从 Postman 文档中获得了这种美感:

受限制的标头和 cookie

很遗憾,某些标头受 Chrome 和 XMLHttpRequest 规范。以下标头被阻止:

接受字符集接受编码访问控制请求标头 访问控制请求方法连接内容长度 Cookie Cookie 2 Content-Transfer-Encoding Date Expect Host Keep-Alive Origin Referer TE Trailer Transfer-Encoding Upgrade User-Agent Via

https://www.getpostman.com/docs/requests

啊啊啊。那是我一生中再也回不来的一天。

【讨论】:

在 Mac OS Mavericks (10.9.2) 上使用 Insomnia 允许我测试 OPTIONS 请求。 *设置服务器时参考Access-Control-Max-Age 下面的答案声称他们可以使用邮递员拦截器进行飞行前响应这可能吗?【参考方案2】:

我设法使用Postman Interceptor 让它工作 我的设置如下

【讨论】:

当您安装拦截器时,您需要从邮递员应用程序中激活它(这是上面屏幕截图右上角的第一个图标)。之后我就可以通过 CORS 限制了。

以上是关于CORS - 从 Postman 伪造 CORS 预检无法返回标头的主要内容,如果未能解决你的问题,请参考以下文章

Postman(一个电子应用程序)如何绕过 CORS?

使用 Postman 时 django-cors-header 无法按预期工作

使用 POSTMAN 时不会出现 CORS 问题

在 Chrome 控制台中使用 Postman 工具/cURL/ 测试 CORS

在 WebAPI 上启用 CORS 在 Postman 中似乎不起作用

Laravel VueJS,Axios 看不到 CORS 标头,但 Postman 和浏览器可以