首页 > 解决方案 > 如何从本地主机源配置 .NET Core Cors

问题描述

我有一个使用 .NET Core REST api 的 Ionic-Angular 前端。

Ionic-Angular APP 运行在 http:\localhost:8100

.NET Core 可与 swagger、postman 和https://apirequest.io完美配合

但不适用于(来自)http:\localhost:8100

代码很好,可以正常启用 CORS:

服务:

services.AddCors(opciones =>
{
    opciones.AddDefaultPolicy(builder =>
   {
       builder.WithOrigins("http://localhost:8100", "https://apirequest.io", "https://localhost:8100")
       .AllowAnyMethod()
       .AllowAnyHeader();

   });
});

并配置:

app.UseHttpsRedirection();
app.UseRouting();
app.UseCors();
app.UseAuthentication();
app.UseAuthorization();

app.UseEndpoints(endpoints =>
{
    endpoints.MapControllers();
});

我不明白为什么表单“https://apirequest.io”工作正常,而来自“http://localhost:8100”却不行?

浏览器显示的错误是:

'Solicitud de origen cruzado bloqueada: La misma politica de origen no permite la lectura de recursos remotos en https://localhost:5001/api/socios。(Razón:Solicitud CORS sin éxito)。

有关标头的信息:

GET   https://localhost:5001/api/socios
Transferido0 B (tamaño 0 B)
Política de referenciastrict-origin-when-cross-origin
  
Accept    application/json, text/plain, */*
Accept-Encoding   gzip, deflate, br
Accept-Language   es-ES,es;q=0.8,en-US;q=0.5,en;q=0.3
Connection    keep-alive
Host localhost:5001
Origin    http://localhost:8100
Referer   http://localhost:8100/
Sec-Fetch-Dest    empty
Sec-Fetch-Mode    cors
Sec-Fetch-Site    cross-site
User-Agent    Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Firefox/91.0

我认为该错误是由我不知道的其他配置产生的,因为它适用于“https://apirequest.io”。也许是因为它不是来自https?

我正在尝试为 Ionic 配置 https 但没有成功!

标签: c#ionic-framework.net-core

解决方案


我自己回答。

在 chrome 中即使没有 https 证书也可以允许 localhost 站点:

chrome://flags/#allow-insecure-localhost

这解决了我的情况。

来自:https ://community.spiceworks.com/how_to/154601-chrome-allow-localhost-site-even-without-https-certificate


推荐阅读