【发布时间】:2020-03-14 13:52:24
【问题描述】:
我正在开发一个网站(Angular 8 .NET Core 3.0),它需要一个 url 并尝试从页面中获取 og 标签。我提到了stackoverflow上的第一个答案
Startup.cs
--ConfigureServices
services.AddCors(o => o.AddPolicy("CORSPolicy", builder =>
{
builder.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader();
}));
--Configure
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Error");
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseCors("CORSPolicy");
app.UseStaticFiles();
if (!env.IsDevelopment())
{
app.UseSpaStaticFiles();
}
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller}/{action=Index}/{id?}");
});
app.UseSpa(spa =>
{
spa.Options.SourcePath = "ClientApp";
if (env.IsDevelopment())
{
spa.UseAngularCliServer(npmScript: "start");
}
});
}
现在我使用以下调用发出获取请求。
this.httpCli.get(this.URL, { headers: headers }).subscribe(result => {
console.log(result);
}, error => {
console.error(error.text);
console.error(error);
});
我还是明白了
被 CORS 政策阻止:请求的资源上不存在“Access-Control-Allow-Origin”标头。
对于一些网址。因为输出是 HTML,所以我得到 HttpErrorResponse,但状态正常,错误文本包含网页源。 我需要 HTML 源代码从 .
中提取 og 元标记如何解决这两个问题?
【问题讨论】:
-
能否更新问题,使其在 startup.cs 中包含 cors 配置?
-
添加了代码。谢谢
-
您也应该分享您的管道配置。管道的顺序至关重要。所以在其他中间件之前配置 CORS 很重要。您也可以尝试使用 EnableCorse 属性修改您的方法。
-
我已经更新了问题。我也确实将 EnableCors 添加到我的控制器中
标签: angular asp.net-core-webapi