Доступ к xmlhttprequest из источника был заблокирован политикой Cors в Angular 6 - PullRequest
0 голосов
/ 06 февраля 2019

Я использую Asp.Net Core Boilerplate Framework для моего проекта на стороне сервера. Angular 6 используется для проекта на стороне клиента.Серверный проект работает без ошибок.(Показывает Swagger API - и API также работают)

Нет ошибок компиляции из проекта Angular.При запуске углового проекта с использованием Google Chrome (http://localhost:4200/) отображается следующее сообщение об ошибке.

enter image description here

В консоли браузера отображается следующее: -

Доступ к XMLHttpRequest в 'http://server.projectName.lk//AbpUserConfiguration/GetAll' от источника' http://localhost:4200' был заблокирован политикой CORS: Ответ на предпечатный запрос не проходит проверку контроля доступа: Нет 'ДоступЗаголовок -Control-Allow-Origin 'присутствует на запрашиваемом ресурсе.

При нажатии на ссылку' 'http://server.projectName.lk//AbpUserConfiguration/GetAll'' он открывается на другой вкладке и отображает ошибку ниже,

enter image description here

Высоко ценю ваши идеи для решения этой проблемы ..

ПРИМЕЧАНИЕ. Ни один из предыдущих вопросов не дал мне решения.

Это журнал ошибок отладки, который вы получаете для этой проблемы

> The thread 0x54b0 has exited with code 0 (0x0).
> Microsoft.AspNetCore.Hosting.Internal.WebHost:Information: Request
> starting HTTP/1.1 OPTIONS
> http://localhost:21021/AbpUserConfiguration/GetAll  0
> Microsoft.AspNetCore.Cors.Infrastructure.CorsService:Information: CORS
> policy execution failed.
> Microsoft.AspNetCore.Cors.Infrastructure.CorsService:Information:
> Request origin http://localhost:4200 does not have permission to
> access the resource.
> Microsoft.AspNetCore.Hosting.Internal.WebHost:Information: Request
> finished in 311.689ms 204 
> Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker:Information:
> Route matched with {action = "Index", controller = "Home", area = ""}.
> Executing action San.BA.Web.Host.Controllers.HomeController.Index
> (San.BA.Web.Host) The program '[21292] dotnet.exe' has exited with
> code -1 (0xffffffff).

startup.cs Файл

Ответы [ 2 ]

0 голосов
/ 23 августа 2019

Я знаю, что это старый вопрос, но подумал, что это поможет любому, кто столкнется с этой проблемой.Недавно мы столкнулись с той же ошибкой, когда переместили наше приложение на основе ASP.NET WebAPI в AWS.Оказалось, что у балансировщика нагрузки (ALB) было время ожидания в одну минуту, что означает, что если какой-либо API занимает больше минуты, ALB отменял запрос и, как ни странно, Chrome выдает ошибку, связанную с CORS.В журналах IIS HTTPERR такой запрос был помечен как Request_Cancelled.Поскольку один из наших API занимал больше минуты, нам пришлось изменить конфигурацию тайм-аута в ALB, и все стало работать гладко!Хотя загадка почему Chrome называет это CORS!

0 голосов
/ 07 февраля 2019

Cross Source Resource Sharing (CORS) - это стандарт W3C, который позволяет серверу ослабить политику того же происхождения.Используя CORS, сервер может явно разрешить некоторые запросы между источниками, отклоняя другие.CORS более безопасен и более гибок, чем более ранние методы, такие как JSONP.В этом разделе показано, как включить CORS в приложении ASP.NET Core.

Это происходит из-за сбоя политики CORS на стороне сервера.Так как вам нужно либо добавить URL клиента в файл appsettings.json в хост-проекте.

"App": { ...... "CorsOrigins": "<a href="http://localhost:4200" rel="nofollow noreferrer">http://localhost:4200</a>" ...... }

Для получения дополнительной информации вы можете проверить следующий URL:
https://docs.microsoft.com/en-us/aspnet/core/security/cors?view=aspnetcore-2.2

...