预检的响应包含无效的HTTP状态代码404“

时间:2017-04-28 03:30:23

标签: javascript asp.net angularjs iis cors

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

我的web.config中已经有以下内容并且仍然看到了问题?我已经启用了CORS以及GET请求work.can任何人指点如何调试此问题?

  <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;
        }

    }

错误: -

enter image description here

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

转到Windows图标&gt;运行:

  

chrome.exe --user-data-dir =“C:/ Chrome开发者会话”    - 禁用网络的安全性

然后再次运行应用程序,让我们知道结果。此外,如果您分享 http post 代码和API Controller方法的签名(包括路径),这将会很有帮助。