Я использую Angular 6+
для небольшого веб-сайта, представляющего CRUD
для SQL Database
. Я знаю, Angular
- это client-side framework
, поэтому я создал веб-сервис, используя Visual Studio 2017
, проект, который я использовал, - web application ASP.NET Core
, и, поскольку я тестирую его в localhost
, Angular
работает поверх 4200 port
и мой сервис в настоящее время на port 53819
В связи с этим у меня есть (или при последней попытке) включить Cross-Origin Resource Sharing (CORS)
, установив пакет CORS NUGget на свой webservice
и включив его на уровне контроллера, как показано:
...
namespace CIE_webservice.Controllers
{
[Produces("application/json")]
[Route("api/CIE")]
[EnableCors(origins: "http://localhost:4200/", headers: "*", methods: "*")]
public class CIEController : Controller
{
[HttpGet]
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
...
на моем Angular App
Я использую простой запрос ajax
следующим образом:
$.ajax({
url: 'http://localhost:53819/api/CIE/',
success: function() { console.log(" OK "); },
error: function() { console.log(" Error "); }
});
Насколько я могу получить учебники, мой код в порядке, но все равно выдает ошибку:
Failed to load http://localhost:53819/api/CIE/: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:4200' is therefore not allowed access.
Даже если Ajax-запрос имеет ответ 200 OK, и предварительный просмотр показывает мне ответ json:
Может быть, я что-то упустил, или я не очень хорошо понимаю концепцию ... Если вам нужна дополнительная информация для решения моего дела, не стесняйтесь спрашивать.
Заранее спасибо.