如何在 asp.net 网站中激活 cors (razor 3)

Posted

技术标签:

【中文标题】如何在 asp.net 网站中激活 cors (razor 3)【英文标题】:How to activate cors in a asp.net website (razor 3) 【发布时间】:2020-01-18 16:52:40 【问题描述】:

我是 ASP.NET 网站编程的新手。我有一个 node js express 应用程序,我需要向它发出请求。这目前在我的 asp.net 站点上不起作用,因为我没有启用 cors。我希望你能帮助我,如果我只是愚蠢并且配置我的网站错误或忘记添加控制器,请告诉我。

我尝试通过 nuget 添加 cors 包并将其添加到 web.config。

【问题讨论】:

How to enable cross origin requests in ASP.NET MVC的可能重复 我自己还没有这样做,但我认为这篇文章可能会有所帮助docs.microsoft.com/en-us/aspnet/web-api/overview/security/… 不,这不是重复的,我没有(据我所知)没有 asp.net mvc 网站。 这篇文章并没有真正帮助我,因为我认为这篇文章是针对 mvc 的 我删除了asp.net-core 标签,因为它不是与asp.net-core 相关的问题 【参考方案1】:

在解决方案资源管理器中,展开 WebApi 项目。打开文件 App_Start/WebApiConfig.cs,将以下代码添加到方法 WebApiConfig.Register。

public static class WebApiConfig
    
        public static void Register(HttpConfiguration config)
        
            // New code
            config.EnableCors();

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/controller/id",
                defaults: new  id = RouteParameter.Optional 
            );
        
    

然后将属性 [EnableCors] 添加到所需的控制器:

namespace MyProject.Controllers

    [EnableCors(origins: "http://myclient.azurewebsites.net", headers: "*", methods: "*")]
    public class TestController : ApiController
    
        // Controller methods not shown...
    

【讨论】:

所以我想尝试一下,但我没有名为 App_Start 的文件夹。 prntscr.com/p7u0en这就是我的全部 检查您注册路线的文件,或在您的解决方案中搜索Routes.MapHttpRoute

以上是关于如何在 asp.net 网站中激活 cors (razor 3)的主要内容,如果未能解决你的问题,请参考以下文章

如何在我的 ASP.NET 核心 WebApi 项目中全局启用 CORS

如何在 ASP.net Core WebAPI 中启用 CORS

使用 SIGNAL R 的 Angular 7 和 ASP.NET Core 2.2 的 CORS 策略问题

如何在 ASP.NET Core 中启用 CORS

如何在 asp.net web apis 中启用 cors 选项。?

如何在 Asp.Net Core 3.0 WebAPI 中启用 CORS