.NET Aspire中的scalar返回NetworkError when attempting to fetch resource 如何解决

在.NET Aspire中使用swagger或者scalar做测试时发现,无论哪个API接口,返回的结果都如下图所示(NetworkError when attempting to fetch resource):

这个问题是由于.NET Core在使用OpenApi时没有转发正确的网络地址导致的

正确的地址(端口号7234):

scalar中的地址(错误端口号10050):

可以通过添加配置,从而正确转发网络地址(端口号7234):

app.MapScalarApiReference(options => options.Servers = []);

另一种方式是使用跨域解决该问题:

builder.Services.AddCors(options =>
{
    options.AddPolicy("GetorPost",
        builder =>
        builder.AllowAnyOrigin().WithMethods("GET", "POST")
        .AllowAnyHeader());
});
-------------分割线(省略部分代码)-----------
app.UseCors("GetorPost");

但是这样做并不会显示正确的地址,只是在测试时会返回正确的结果。因此,优先选择第一种方式。

可以在github中找到相似的问题:

https://github.com/dotnet/aspnetcore/issues/57332#issuecomment-2479286855

或者是stackoverflow:

https://stackoverflow.com/questions/79208910/cors-error-when-using-swagger-openai-in-net-9-aspire-application

来源链接:https://www.cnblogs.com/Dr-Harrison-Wells/p/18722912

© 版权声明
THE END
支持一下吧
点赞10 分享
评论 抢沙发
头像
请文明发言!
提交
头像

昵称

取消
昵称表情代码快捷回复

    暂无评论内容