.Net 6 - UseCors for blazor



我正在尝试构建一个blazor应用程序,需要从客户端获取一些json,但在http源上,我无法转换为https,当然我在chrome上有cors问题。

Unhandled exception rendering component: TypeError: Failed to fetch
System.Net.Http.HttpRequestException: TypeError: Failed to fetch
---> System.Runtime.InteropServices.JavaScript.JSException: TypeError: Failed to fetch
at System.Net.Http.BrowserHttpHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
--- End of inner exception stack trace ---
at System.Net.Http.BrowserHttpHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at System.Net.Http.HttpClient.GetStringAsyncCore(HttpRequestMessage request, CancellationToken cancellationToken)
at CncGenerator.MachineDashboard.MachineDashboardController.GetStatusAsync() in C:ProjectsCncGeneratorV4CncGeneratorCncGeneratorMachineDashboardMachineDashboardController.cs:line 26
at CncGenerator.Shared.MachineDashboard.OnInitializedAsync() in c:ProjectsCncGeneratorV4CncGeneratorCncGeneratorSharedMachineDashboard.razor:line 24
at Microsoft.AspNetCore.Components.ComponentBase.RunInitAndSetParametersAsync()
at Microsoft.AspNetCore.Components.RenderTree.Renderer.GetErrorHandledTask(Task taskToHandle, ComponentState owningComponentState)

所以我找到了一些解释如何通过添加

来设置这些Cors的帖子。
builder.Services.AddCors(options =>
{
options.AddPolicy("CorsAllowAll",
builder =>
{
builder.AllowAnyMethod()
.AllowAnyOrigin()
.AllowAnyHeader()
.SetIsOriginAllowed(origin => true)
.WithMethods("GET, PATCH, DELETE, PUT, POST, OPTIONS");
});
});

如果我理解正确的话,我应该做

var app = builder.Build();
app.UseCors("CorsAllowAll");
await app.RunAsync();

但是我有点失去了与。net 6的新方法,因为应用程序返回WebAssemblyHost而不是IApplicationBuilder,如预期的那样能够使用扩展方法UseCors。

我怎么做才能解决它?

问候,

我需要对托管在我无法控制的服务中的json进行GET

如果该服务器没有配置为允许CORS请求,那么就使用SPA客户端而言,您就不走运了。

您可以从自己的服务器调用该服务。因此,创建一个直通端点。

我怎么说chrome然后绕过他的默认证券?

很多黑客也想知道这个。

相关内容

  • 没有找到相关文章

最新更新