【问题标题】:Response for preflight has invalid HTTP status code 404”预检响应具有无效的 HTTP 状态代码 404”
【发布时间】:2017-09-26 01:24:23
【问题描述】:

我无法从 Angular 应用程序进行 POST 调用,IIS 服务器拒绝请求并显示“预检响应具有无效的 HTTP 状态代码 404”,我知道有很多这样的问题,但我见过的都没有解决我的问题

我的 web.config 中已经有以下内容并且仍然看到问题?我也启用了 CORS,并且 GET 请求工作。谁能指点如何调试这个问题?

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

更新:

    [Route("api/SoftwareProduct/GetBuildNotes")]
    [HttpPost]
    public ResponseObject GetBuildNotes([FromBody] BuildNotes_ip BuildNotes)
    {
        ResponseObject response = new ResponseObject();
        try
        {
            response.status = 200;
            response.data = SPS.GetBuildNotes(BuildNotes);
            if (BuildNotes.IsEdit)
                response.message = "Inserted Data successfully.";
            else
                response.message = "Fetched Data successfully.";
            return response;
        }
        catch (Exception e)
        {
            response.status = 200;
            response.data = null;
            response.message = e.Message;
            return response;
        }

    }

错误:-

【问题讨论】:

    标签: javascript asp.net angularjs iis cors


    【解决方案1】:

    我认为这是一个 cors 问题。确保您的后端服务器不仅接受 POST 请求,还接受同一端点 url 的 OPTIONS 请求。 OPTIONS 请求应该只返回成功 200 代码

    【讨论】:

    • Anis - 你能扩展accepting OPTIONS request吗?如何以及在哪里添加这个?
    • 您有一个服务器,您正在向其发送POST 请求。在该服务器上,您可能有类似“当用户使用请求类型POST 访问端点/abc 时返回某些东西”。您还需要这样的内容:“当用户使用请求类型OPTIONS 到达端点/abc 时返回200 OK
    • 你说的很模糊......没有具体细节......无法转化为任何可实施的东西
    【解决方案2】:

    有时 CORS 问题会产生误导,因为它可能是一个不同的例外,但仍会显示出来。我建议以下内容作为指针: 我假设您在 Windows 上使用 Chrome。运行以下命令以打开禁用 Websecurity(包括 CORS) 的 Chrome。请确保在运行此命令之前关闭所有 Chrome 实例。

    转到 Windows 图标 > 运行:

    chrome.exe --user-data-dir="C:/Chrome 开发会话" --disable-web-security

    然后再次运行应用程序,让我们知道结果。此外,如果您分享您的 http 帖子 代码和 API 控制器方法的签名,包括 路由,也会很有帮助。

    【讨论】:

    • Felix - 即使在尝试了这个之后仍然有这个问题......,用最新的代码更新了我的问题
    • 嗨@dot_net 我看到了更新,Web API sn-p 看起来还不错。您还可以使用 AngularJS sn-p 进行更新吗?也许您绑定 BuildNotes 对象的方式是问题所在。问题是 Route 对客户端(AngularJs)不可见。
    猜你喜欢
    • 2018-04-25
    • 2016-01-22
    • 2017-12-22
    • 1970-01-01
    • 2018-03-12
    • 2016-02-13
    • 2016-01-18
    • 2016-04-14
    • 2016-02-08
    相关资源
    最近更新 更多