c # asp .net ядро ​​HTTP POST-запрос работает с почтальоном, но не с моим угловым клиентом (ошибка 404) - PullRequest
0 голосов
/ 17 октября 2018

У меня проблемы с моим остальным c # asp .net Rest Server.Я создал AuthenticationController с тестовым маршрутом, который, кажется, работает с Postman, но когда я пытаюсь получить тот же результат в своем приложении Angular 6, я получаю ошибку 404, что маршрут не найден, хотя это точно такой же URL.

Мой контроллер ядра Asp .net:

[Authorize]
[ApiController]
[Route("api/[controller]")]
public class AuthenticationController : ControllerBase
{
    private readonly IAuthenticationService _service;

    public AuthenticationController(IAuthenticationService service)
    {
        _service = service;
    }


    [AllowAnonymous]
    [HttpPost("[action]")]
    public IActionResult Test()
    {
        return Ok("It worked");
    }

}

My Angular Service, где вызывается маршрут:

import {Injectable} from '@angular/core';
import {HttpClient, HttpErrorResponse, 
HttpHeaders}from'@angular/common/http';


const SERVER_URL = 'http://localhost:4000/api/authentication/';

@Injectable({providedIn: 'root'})
export class LoginService {
public token: string;

constructor(private sessionUser: SessionUserService, private http: 
HttpClient, private rolesService: RolesService) {}



test() {
  return this.http.post(SERVER_URL + 'test', {})
  .map((response: any) => {
    console.log(response);
    return response;
  })
  .catch(err => {
    console.log(err);
    return Observable.of(false);
  });
 }

}

и вот другие результаты:

Вызов маршрута из моего Angular Client:

Calling the route from my Angular Client

Вызов маршрута из Почтальона:

Calling the route from Postman

Вывод консоли главного сервера asp .net:

Output of the asp .net core server console

Как видно из журналов консоли изСервер есть 404 и 200 Запрос завершен.Приложение с 404 - это мое приложение, приложение с 200 - это письмо от Почтальона.

Примечание:

CORS не должно быть проблемой, так как у меня есть расширение Google Chrome.

Я также пытался избежать этой ошибки с помощью конфигурации прокси, которая поддерживает angular.

1 Ответ

0 голосов
/ 18 октября 2018

Как видите, вы получили 404 для запроса ОПЦИИ.Мы отправляем запрос параметров, когда отправляем запрос между доменами.

Пожалуйста, убедитесь, что ваше CORS в приложении asp.net настроено.Потому что при использовании POSTMAN это не междоменный запрос.

Вы должны добавить заголовок ответа Access-Control-Allow-Origin: *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...