C# Asp.net MVC5,带角度2配置

C# Asp.net MVC5,带角度2配置,c#,angular,asp.net-web-api,asp.net-mvc-5,angular-http,C#,Angular,Asp.net Web Api,Asp.net Mvc 5,Angular Http,我是Angular 2的初学者。我正在使用Angular CLI创建Angular项目。我正在单独创建asp.net MVC Web api项目 使用angular CLI来ng serve命令启动此服务:localhost:4200 MVC web api启动此服务:localhost:65320 当我使用Angular httpget请求从localhost:65320/api/myservice下载数据时,出现了跨源问题。因为角度项目使用不同的url。但我正在将头添加到访问控制允许源=

我是Angular 2的初学者。我正在使用Angular CLI创建Angular项目。我正在单独创建asp.net MVC Web api项目

  • 使用angular CLI来
    ng serve
    命令启动此服务:
    localhost:4200
  • MVC web api启动此服务:
    localhost:65320
当我使用Angular httpget请求从
localhost:65320/api/myservice
下载数据时,出现了跨源问题。因为角度项目使用不同的url。但我正在将头添加到
访问控制允许源=*
问题已解决

但当我使用httppost请求时,总是返回
405方法不允许
出现问题

问题:

  • 如何在web api控制器中允许跨源post请求
  • 或者如何配置Angular CLI创建的项目与MVC项目一起工作
正确答案:

Web api跨源问题根据本文解决:
@chandermani建议您可以通过两种不同的方式在Web API中启用CORS:

  • 使用Microsoft.AspNet.WebApi.Cors:按照前面指出的教程进行操作
  • 将以下内容添加到web.config中的system.webServer元素中:

    
    


  • 您可以通过两种不同的方式在Web API中启用CORS:

  • 使用Microsoft.AspNet.WebApi.Cors:按照前面指出的教程进行操作
  • 将以下内容添加到web.config中的system.webServer元素中:

    
    


  • 你看过这篇msdn文章吗@Chandermani no.我会看看的。tnx@Chandermani非常感谢。您的链接解决了我的跨源请求
    帖子
    问题。太棒了!将您的修复作为答案发布,这样它就可以被标记。您是否看过这篇msdn文章@Chandermani no。我会看到的。tnx@Chandermani非常感谢。您的链接解决了我的跨源请求
    帖子
    问题。太棒了!将你的修复作为答案发布,这样它就可以被标记。我正在尝试你的选项2。但是POST请求总是返回
    405方法不允许
    。现在,我正在使用
    Microsoft.AspNet.WebApi.Cors
    library解决这个问题。在某些情况下,客户端使用OPTIONS方法向服务器发送预处理请求,您可能并没有实现该方法,所以不允许使用405方法。这是由Microsoft.AspNet.WebApi.Cors自动实现的,但在旧版本的MVC中不可用。我正在尝试您的选项2。但是POST请求总是返回
    405方法不允许
    。现在,我正在使用
    Microsoft.AspNet.WebApi.Cors
    library解决这个问题。在某些情况下,客户端使用OPTIONS方法向服务器发送预处理请求,您可能并没有实现该方法,所以不允许使用405方法。这是由Microsoft.AspNet.WebApi.Cors自动实现的,但在旧版本的MVC中不可用。