Angular 否";“访问控制允许来源”;部署时某些路由中存在标头

Angular 否";“访问控制允许来源”;部署时某些路由中存在标头,angular,iis,asp.net-web-api,cors,windows-authentication,Angular,Iis,Asp.net Web Api,Cors,Windows Authentication,我已经用Angular x.x构建了一个前端,它可以拾取现有ASP.NET Web API 1.x应用程序的路由 身份验证以及与后端的通信存在一些问题,因此我在客户端实现了以下拦截器: 凭据的角度拦截器: @Injectable() export class CredentialsInterceptor implements HttpInterceptor { intercept(req: HttpRequest<any>, next: HttpHandler): Ob

我已经用Angular x.x构建了一个前端,它可以拾取现有ASP.NET Web API 1.x应用程序的路由

身份验证以及与后端的通信存在一些问题,因此我在客户端实现了以下拦截器:

凭据的角度拦截器:

@Injectable()
export class CredentialsInterceptor implements HttpInterceptor {

  intercept(req: HttpRequest<any>, next: HttpHandler):
    Observable<HttpEvent<any>> {

    req = req.clone({
      withCredentials: true
    });

    return next.handle(req);
  }
}
而web.config是这样的:

<system.web>
  <authentication mode="Windows" />
  <authorization>
    <allow verbs="OPTIONS" users="*"/>
    <deny users="?"/>
  </authorization>
</system.web>

<system.webServer>
  <handlers>
      <remove name="WebDAV" />
      <remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
      <remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
      <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
      <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
      <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
      <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
  </handlers>
</system.webServer>
到目前为止,我没有发现正在工作的控制器和没有工作的控制器之间有任何区别


有人知道这是怎么回事吗

这么一件小事,影响这么大

我忘了将
添加到
web.config
处理程序中


现在一切正常!希望它能帮助别人

我请求您将您的解决方案标记为一个答案,它将帮助其他面临类似问题的人。完成-我不得不等待2天,直到我可以放置它并忘记它-谢谢提醒!
<system.web>
  <authentication mode="Windows" />
  <authorization>
    <allow verbs="OPTIONS" users="*"/>
    <deny users="?"/>
  </authorization>
</system.web>

<system.webServer>
  <handlers>
      <remove name="WebDAV" />
      <remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
      <remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
      <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
      <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
      <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
      <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
  </handlers>
</system.webServer>
Access to XMLHttpRequest at *route* from origin *origin* has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No "Access-Control-Allow-Origin" header is present on the requested source.