Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASP.net WebApi POST返回405错误_Asp.net_Angular5_Web.api - Fatal编程技术网

ASP.net WebApi POST返回405错误

ASP.net WebApi POST返回405错误,asp.net,angular5,web.api,Asp.net,Angular5,Web.api,我正在用asp.net后端构建Angular 5应用程序。我想发送POST请求,我通过邮递员对它进行了测试,它工作得非常好,然而,当我尝试在内部执行时,我得到了405个错误。 I用户HttpClient,标题为:newhttpheaders({'Content-Type':'application/json'}),与Postman相同 我试图更改web.config <system.webServer> <httpProtocol> <cus

我正在用asp.net后端构建Angular 5应用程序。我想发送POST请求,我通过邮递员对它进行了测试,它工作得非常好,然而,当我尝试在内部执行时,我得到了405个错误。 I用户HttpClient,标题为:newhttpheaders({'Content-Type':'application/json'}),与Postman相同

我试图更改web.config

  <system.webServer>
    <httpProtocol>
      <customHeaders>
        <add name="Access-Control-Allow-Origin" value="*"/>
        <add name="Access-Control-Allow-Headers" value="Origin, Authorization, X-Requested-With, Content-Type, Accept"/> 
        <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS"/>
      </customHeaders>
    </httpProtocol>
    <validation validateIntegratedModeConfiguration="false"/>
    <modules runAllManagedModulesForAllRequests="true">
      <remove name="WebDAVModule"/>
    </modules>
    <handlers>
      <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
      <remove name="OPTIONSVerbHandler" />
      <remove name="TRACEVerbHandler" />
      <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
    </handlers>
  </system.webServer>

}这是因为浏览器在发送主请求之前发送飞行前请求

您可以向webapi应用程序添加以下代码:global.asax.cs

protected void Application_BeginRequest()
{
    if (Request.HttpMethod == "OPTIONS") {
        Response.Flush();
    }
}
protected void Application_BeginRequest()
{
    if (Request.HttpMethod == "OPTIONS") {
        Response.Flush();
    }
}