ASP.NET core WebApi Cors跨域解决

文章介绍了如何在最新版的Asp.netWebApi中解决跨域问题,强调了依赖官方文档和GitHub资源的重要性。作者通过添加CORS政策并允许任何来源、头部和方法来启用所有请求,并展示了Swagger的集成和配置,以提供API的文档和测试能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

我用了最新版的Asp.net webapi ,在csdn上面搜跨域如何解决的时候,发现csdn上面对于.NET技术讨论不是很多。没办法,只能面向官方文档和GitHub编程了。

项目类型确认

在这里插入图片描述
在这里插入图片描述

NuGet包引入

在这里插入图片描述
前面两个已经放弃维护了,我们就不用了。用最新的webApi

我们引入了最新的api后可以在官方网址上查看文档(有些地址是gitHub地址,文档都没有只有范例,只能自己去推导):
在这里插入图片描述
微软webApi官方文档地址
在这里插入图片描述

如何使用

我们现将所有的请求全部打开,如果有特殊需求自己配置

打开Program.cs文件
在这里插入图片描述
重要代码

using Microsoft.AspNetCore.Builder;
using Microsoft.OpenApi.Models;
using System.Reflection;

var builder = WebApplication.CreateBuilder(args);
var MyPolicy = "MyPolicy";//声明跨域配置的名称

/// <summary>
/// 配置跨域
/// </summary>
builder.Services.AddCors(options =>
{
    options.AddPolicy(MyPolicy, policy =>
    {
        policy.AllowAnyHeader().AllowAnyOrigin().AllowAnyMethod();
    });
});

.......(其它代码)


app.UseCors(MyPolicy);//使用跨域请求


完整代码

using Microsoft.AspNetCore.Builder;
using Microsoft.OpenApi.Models;
using System.Reflection;

var builder = WebApplication.CreateBuilder(args);
var MyPolicy = "MyPolicy";

/// <summary>
/// 配置跨域
/// </summary>
builder.Services.AddCors(options =>
{
    options.AddPolicy(MyPolicy, policy =>
    {
        policy.AllowAnyHeader().AllowAnyOrigin().AllowAnyMethod();
    });
});
// Add services to the container.

builder.Services.AddControllers();
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();


//添加swagger接口配置
builder.Services.AddSwaggerGen(options =>
{
    options.SwaggerDoc("v1", new OpenApiInfo
    {
        Version = "v1",
        Title = "API标题",
        Description = $"API描述,v1版本"
    });
    var xmlFilename = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
    //IncludeXmlComments 第二参数 true 则显示 控制器 注释
    options.IncludeXmlComments(Path.Combine(AppContext.BaseDirectory, xmlFilename), true);
});



var app = builder.Build();

// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
    app.UseSwagger();
    app.UseSwaggerUI();
}


app.UseCors(MyPolicy);
app.UseAuthorization();

app.MapControllers();

app.Run();

总结

.Net技术在国内比较冷清,选择了.NET就要有去查官方文档和githubDemo的准备。我会把我遇到的.NET问题发博客在CSDN上面帮助大家解决问题。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值