我正在使用 Angular,我正在尝试与 openfire 连接,连接建立成功,当我尝试使用 Angular 中的 httpclient 调用 get user 时。我收到如下 Cors 错误
从源“http://localhost:4200”访问“http://127.0.0.1:9090/plugins/restapi/v1/users”处的 XMLHttpRequest 已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:预检请求不允许重定向。
我在 Web 绑定设置中启用了 Cors,但它不起作用
首先,COR 的策略问题来自您的后端。在后端,请确保将后端的请求来源列入白名单。就像前端网址一样。 在 c# web api 中你可以这样做
services.AddCors(options =>
{
options.AddPolicy(name: "AllowSpecificOrigin",
builder =>
{
builder.WithOrigins(corsOptions.AllowedOrigins).WithHeaders(corsOptions.AllowedHeaders).WithMethods(corsOptions.AllowedMethods);
if (corsOptions.AllowCredentials)
{
builder.AllowCredentials();
}
else
{
builder.DisallowCredentials();
}
});
});
对于您的网址,您可以在 appsettings.json 中像这样列出它们
"AllowedOrigins": [ "http://localhost:4200", "https://localhost:4200", "https://localhost:8100", "http://localhost:8100" ],
在program.cs中你可以这样列出它。
app.UseCors("AllowSpecificOrigin");