C# web跨域问题

方法1:配置文件中添加如下配置,此方法简单,应对简单的跨域请求

 


    
      
        
        
        
      
    

理论上这样就是没有问题了,这样是全部方法都跨域

方法1是最快的,只要要配置文件中加入就好了,如果你有其它需求或还是不能跨域,请看方法2

 

方法2:使用Microsoft.AspNet.Cors解决跨域

 

C# web跨域问题_第1张图片

 

一:全局配置

我的主要是webApi,所以我用的“Microsoft.AspNet.WebApi.Cors”,下载包后在WebApiConfig类下做配置

这时给出一个官方api:https://docs.microsoft.com/zh-cn/aspnet/core/security/cors?view=aspnetcore-3.1

需要引入命名空间:
using System.Web.Http.Cors;

public static void Register(HttpConfiguration config)
        {
            // Web API 設定和服務
            config.EnableCors(new EnableCorsAttribute(origins: "*", headers: "*", methods: "GET,POST,PUT,DELETE,OPTIONS"));

            // Web API 路由
            config.MapHttpAttributeRoutes();

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

二:单独配置

在单独的一方法下配置

    [EnableCors(origins: "*",headers:"*",methods:"*")]
    public class ManangeController1 : ApiController
    {
        public string Get(int id)
        {
            return "value";
        }
    }

**方法一和方法二用一个就好了,两个都用会报错,如果你是在开发环境,你两个都测试了都不能跨域,这是因为visual stuido在调试时,访问域名写死了,如果调试时它默认开启的是:“http://localhost:1789”那你就不能用“http://127.0.0.1:1789”去访问

你可能感兴趣的:(C#)