在 fiddler 工作之前,CORS 预检请求不会命中 IIS

CORS preflight request doesn't hit IIS until fiddler is working

是的,这是另一个 CORS 问题,我已经为这个问题搜索了三天多,试图了解正在发生的事情。

在此 repo 下找到的示例应用程序 Sample Application

我收到一个错误

这是请求在 fiddler 中的方式,(供您参考,此请求未到达 ASP.Net 应用程序,只是点击 IIS)

  1. => 401
  2. => 401
  3. => 200

如fiddler中所示(是

  1. 预检请求(OPTIONS 动词),响应为 200(成功
  2. 要求响应为 200 的实际请求(GET 动词)(成功

fiddler分析到这里

我的问题

  1. 为什么在激活 fiddler 时一个简单的 get 请求(来自 chrome)解决了我所有的问题,并允许我在之后发出任何复杂的 CORS 请求而不会出现任何错误。
  2. 如何毫无问题地发出复杂的 CORS 请求(不需要 fiddler)。

请注意,我在考虑(可能是错误的)Fiddler 充当处理 IIS 的代理,并且可以在 IIS 接受任何复杂请求后进行所需的身份验证握手。

在此 repo 下找到的示例应用程序 Sample Application

我找到了我的问题的解决方案: Lex Li 建议它与 IIS CORS 模块有关

CORS in IIS When deploying to IIS, CORS has to run before Windows Authentication if the server isn't configured to allow anonymous access. To support this scenario, the IIS CORS module needs to be installed and configured for the app.

通过从 IIS CORS Module

安装 IIS CORS 模块

IIS CORS 模块文档IIS CORS documentation

感谢 Lex Li的支持