ASP.NET CORE 完美跨域请求

1、在nuget添加using Microsoft.AspNetCore.Cors;

2、打开Startup.cs文件,在ConfigureServices 中配置跨域

 services.AddCors(options =>
            {
                options.AddPolicy("any", builder =>
                {
                    //builder.WithOrigins("http://a.example.com", "http://c.example.com") 
                    builder.AllowAnyOrigin()
                    .AllowAnyMethod()
                    .AllowAnyHeader()
                    .AllowCredentials();                    
                });
            });
 //"http://a.example.com", "http://c.example.com" 代表着允许访问的域,就好像给这个域开放了一个权限,允许访问的权限,可以写多个逗号分隔
//AllowAnyMethod允许跨域策略允许所有的方法:GET/POST/PUT/DELETE 等方法  如果进行限制需要 AllowAnyMethod("GET","POST") 这样来进行访问方法的限制
//AllowAnyHeader允许任何的Header头部标题    有关头部标题如果不设置就不会进行限制
//AllowAnyOrigin 允许任何来源
//AllowCredentials 设置凭据来源

3、在Configure中是最全局配置,配置后所有的Controller都支持,

 //配置Cors
 app.UseCors("any");

4、在action配置action生效,在控制器中配置控制器生效

    //action
    [EnableCors("any")]//启用跨域
    public Object getMultipleOrderDetail(string OrderNO, int OrderNoType, string BranchID)
    {
         return vM.getMultipleOrderDetail(OrderNO, OrderNoType, BranchID); 
    }
    //控制器
    [EnableCors("any")]//跨域
    [Route("api/[controller]")]
    [ApiController]
    public class SenSmsController : ControllerBase
    {

5、前端在通过ajax调接口的时候需要配置

ASP.NET CORE 完美跨域请求_第1张图片

你可能感兴趣的:(Web)