【问题标题】:jQuery CORS and 404jQuery CORS 和 404
【发布时间】:2014-05-17 12:35:04
【问题描述】:

我的网络服务器为请求返回 404,因为我还没有实现控制器操作。该请求是一个预检请求 (OPTIONS),我可以看到 Chrome 开发工具中返回了 404。

让我吃惊的是 jQuery 反而返回状态码 0。我可以通过某种方式获取原始错误代码吗?

HTTP 响应由 ASP.NET WebApi 生成。是否应该将 CORS 标头未包含在错误页面中视为错误?还是jQuery没有正确处理错误代码?

【问题讨论】:

  • 你已经达到了同源策略,所以它不是真正的 404,它从来没有那么远。
  • 作为解决方案:始终使用代码 200 响应 OPTIONS 请求。
  • @adeneo:返回 404。是否违反了 CORS 规范。如果是这样,请链接到规范和说明只应返回 200 的部分。
  • 我没有说应该返回 200,你可以返回任何你想要的状态码,但即使你在控制台中看到 404,它也永远不会像请求一样到达 jQuery ajax 回调被同源策略停止,这就是为什么你没有得到状态码或任何标题。
  • 这可能是相关的:stackoverflow.com/questions/4844643/…

标签: jquery cors asp.net-web-api2


【解决方案1】:

我在 ASP.NET WebApi 中reported this as a bug

ASP.NET 团队的回应是:

全局过滤器在动作选择之后运行,因此我们永远无法到达过滤器运行的位置。

此请求更改了 CORS 过滤器的基本行为,因此接受此请求将是一项重大更改。

不过既然要在 ASP.NET vNext 中重新实现 CORS,我想请你打开这个问题(虽然 CORS 还没有实现)以便在 www.github.com/aspnet/mvc 上跟踪

如果您想解决这个问题,请在 github 上 vote on my new issue

【讨论】:

    猜你喜欢
    • 2014-01-20
    • 2013-06-14
    • 2013-01-09
    • 1970-01-01
    • 1970-01-01
    • 2014-10-22
    • 1970-01-01
    • 2012-09-02
    • 2016-04-10
    相关资源
    最近更新 更多