Угловой 404 по запросу post

Я пытаюсь передать учетные данные из Angular в C#, но Angular получает 404. Я следую руководству отсюда. Что-то не так с тем, как я передаю данные? Я уверен, что маршрут правильный.

OPTIONS http://localhost:52008/Account/GetJWT 404 (Not Found)

login:1 Failed to load http://localhost:52008/Account/GetJWT: Response for preflight does not have HTTP ok status.

Из AccountController:

[Route("[controller]/[action]")]
public class AccountController : Controller
{
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]

public async Task<IActionResult> GetJWT([FromBody]LoginModel user)
{
    myJWT m = new myJWT(user);
    return Ok(new { Token = m.token });
}
}

Угловой код, вызывающий вышеуказанный контроллер:

import { HttpClient, HttpHeaders } from '@angular/common/http';
import { Component } from '@angular/core';
import { Router } from "@angular/router";
import { NgForm } from '@angular/forms';

@Component({
  selector: 'login',
  templateUrl: './login.component.html'
})
export class LoginComponent {
  invalidLogin: boolean;

  constructor(private router: Router, private http: HttpClient) { }

  login(form: NgForm) {
    let credentials = JSON.stringify(form.value);
    console.log(credentials);
    this.http.post("http://localhost:52008/Account/GetJWT", credentials, {
      headers: new HttpHeaders({
        "Content-Type": "application/json"
      })
    }).subscribe(response => {
      let token = (<any>response).token;
      localStorage.setItem("jwt", token);
      this.invalidLogin = false;
      this.router.navigate(["/"]);
    }, err => {
      this.invalidLogin = true;
    });
  }

}

Попробуйте http://localhost:52008/Account/. Имя метода C# не является частью маршрута.

Hans Kilian 13.09.2018 18:19

@HansKilian Пробовал безуспешно .... Я уверен, что это часть пути. Есть ли у вас источник, который утверждает обратное?

Rilcon42 13.09.2018 18:36

В этом примере мне не удалось найти AccountController. Но все маршруты там начинаются с /api/. Это то, что вам не хватает? Если нет, добавьте в код свою настройку маршрутизации. Я почти уверен, что ошибка связана с маршрутизацией, так как вы получаете 404, что означает, что он не может понять, какой метод должен обрабатывать запрос.

Hans Kilian 13.09.2018 18:52

@HansKilian, в этом есть смысл. Добавлены мой контроллер и маршрут, я не совсем следую примеру на этом

Rilcon42 13.09.2018 19:25
0
4
250
0

Другие вопросы по теме