【问题标题】:CORS Options Preflight HangingCORS 选项预检悬挂
【发布时间】:2013-04-12 06:52:00
【问题描述】:

我有一个通过 SSL 托管的 ASP Web API 项目。我有另一个使用 API 的 ASP MVC 项目。在调试时,我看到 OPTIONS 请求经常(但并非总是)挂起并阻止其他调用继续进行的行为。

在 Chrome 调试器中,这些只是显示为“待处理”。如果启动 Fiddler,一切正常。我根本看不到任何错误,事情只是挂起。这在它到达授权码之前就失败了,所以我什至不能设置任何断点。

这可能是证书问题吗?防火墙?

【问题讨论】:

  • Adam,如果您正在使用此功能,请告诉我:aspnetwebstack.codeplex.com/…
  • 我没有使用它。我尝试了一些东西,但最终选择了 Thinktecture 中的那个。这些软件包都没有改变我看到的效果。
  • 我的也挂了。Chrome 的选项状态是“待定”。它对我来说时断时续。我还在使用带有子域的 SSL (HTTPS) url。所以我知道预检请求失败了。
  • 我看到 OPTIONS 挂在 firefox 上,有/没有 fiddler,也没有 SSL/TLS。发生在大约 3/4 的请求中。令人沮丧,因为我不知道如何调试它。浏览器似乎已发送请求,但从未命中 CORS 处理程序中的断点。在完整的 IIS 上运行,而不是 IISExpress。 Fiddler 将请求显示为已发送但未响应,所以我猜这排除了浏览器是黑洞。
  • 您是如何获得 SSL 证书的?是自签吗?换句话说,它是否给了您一个警告,并且您在第一次访问该网站时必须手动接受证书?如果是这样,那么这将是您的请求没有通过的问题。尝试使用 HTTP 测试它

标签: asp.net asp.net-web-api cors


【解决方案1】:

您可以试试这个:在 web.config 中添加以下节点。

<system.webServer>
    <handlers>
         <!-- your other handlers -->
         <remove name="OPTIONSVerbHandler" />
    </handlers>
</system.webServer>

【讨论】:

    猜你喜欢
    • 2019-10-21
    • 2015-03-28
    • 1970-01-01
    • 2022-06-29
    • 2018-08-22
    • 2019-10-13
    • 2019-10-10
    • 2018-06-20
    • 2014-08-16
    相关资源
    最近更新 更多