我正在尝试构建一个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然后绕过他的默认证券?
很多黑客也想知道这个。