【问题标题】:Chrome HTTP OPTIONS (Preflight) Fails, but works in PostmanChrome HTTP 选项(预检)失败,但在 Postman 中有效
【发布时间】:2016-03-28 22:20:13
【问题描述】:

我正在使用 AngularJS 和 .NET MVC/WebApi 构建一个 SPA。我在 Chrome 发送 POST、PUT、DELETE 操作的飞行前请求(应该如此)并从服务器返回 404 响应时遇到问题。问题是这个请求(具有相同的标头和 HTTP 方法)在使用 API 测试工具时是成功的;这个例子的邮递员。

这是通过 Chrome 的请求/响应信息:

IIS 跟踪:2015-12-22 16:18:01 127.0.0.1 OPTIONS /api/v1/sidebar v=1450801081939 443 - 127.0.0.1 Mozilla/5.0+(Windows+NT+6.1;+WOW64)+AppleWebKit /537.36+(KHTML,+like+Gecko)+Chrome/47.0.2526.106+Safari/537.36 https://etk.localtest.me/ 404 0 0 6

这是 Postman 中的相同请求:

IIS 跟踪:2015-12-22 16:17:14 127.0.0.1 OPTIONS /api/v1/sidebar v=1449874981966 443 - 127.0.0.1 Mozilla/5.0+(Windows+NT+6.1;+WOW64)+AppleWebKit /537.36+(KHTML,+like+Gecko)+Chrome/47.0.2526.106+Safari/537.36 - 200 0 0 7

如果我的 CORS 配置在 Postman 中工作,我会相信它配置正确?

<httpProtocol>
  <customHeaders>
    <remove name="Access-Control-Allow-Origin" />
    <add name="Access-Control-Allow-Origin" value="*" />
    <remove name="Access-Control-Allow-Headers" />
    <add name="Access-Control-Allow-Headers" value="Content-Type, Accept, Authorization" />
    <remove name="Access-Control-Allow-Methods" />
    <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
  </customHeaders>
</httpProtocol>

以前有没有其他人遇到过这个问题?任何解决方案/修复?

【问题讨论】:

  • 我看到调用是对不同的 API 端点进行的,你确定在 chrome 中不起作用的那个在邮递员中起作用吗?
  • @maurycy 哎呀,那是我的错。我将屏幕截图更新为匹配请求:-X
  • 无论出于何种原因服务器说此 URL 不存在,也许您应该检查服务器的访问日志
  • 这里是 404 呼叫:2015-12-22 15:53:18 127.0.0.1 OPTIONS /api/v1/sidebar v=1450799596414 443 - 127.0.0.1 Mozilla/5.0+(Windows+NT +6.1;+WOW64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/47.0.2526.106+Safari/537.36 etk.localtest.me 404 0 0 2423
  • 嗯,这就是我的意思,这个调用有 404,服务器是否故意抛出这个错误,即身份验证检查?如果您将在浏览器中使用相同的 URL,您会得到什么(转到地址)

标签: angularjs google-chrome asp.net-web-api


【解决方案1】:

预检请求由浏览器创建。根据我的经验,Postman 实际上并没有发送预检请求,因此如果您的 CORS 配置有任何问题,您的 API 调用将适用于 Postman,但不适用于 Chrome。

【讨论】:

    猜你喜欢
    • 2017-01-22
    • 2018-02-21
    • 2021-04-27
    • 1970-01-01
    • 2020-08-29
    • 2020-04-28
    • 2022-11-17
    • 2019-11-28
    • 1970-01-01
    相关资源
    最近更新 更多