405来自Angular

时间:2018-06-19 23:57:19

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

我遇到了CORS问题,但我正在努力解决。我需要允许从任何地方进行访问,因此在Web API 2服务中,我将此添加到了web.config

<system.webServer>
  <httpProtocol>
    <customHeaders>
      <add name="Access-Control-Allow-Origin" value="*" />
    </customHeaders>
  </httpProtocol>
  <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>

我不确定为什么会有处理程序的东西,但是我继承这个项目的小组说我必须将它用于CORS东西。

我还验证了IIS服务器没有过滤任何动词。

当我然后通过'npm run start'在本地运行我的角度应用程序并连接到Web服务时,当我尝试发表文章时,我最终收到了405错误。

1 个答案:

答案 0 :(得分:0)

请参阅此document,为asp.net webapi 2启用CORS。启用CORS后,您应该可以使用Angular应用进行POST。

以下是步骤:

  1. 安装Microsoft.AspNet.WebApi.Cors NuGet软件包
  2. --download-only方法添加config.EnableCors();
  3. 根据您的要求在操作方法或控制器上添加WebApiConfig.Register属性