首页 > 解决方案 > POST 请求上的 Angular 404

问题描述

我正在尝试将凭据从 Angular 传递给 C#,但 Angular 收到 404。我正在关注此处的教程。我传递数据的方式有问题吗?我确定路线是正确的。

选项http://localhost:52008/Account/GetJWT 404(未找到)

login:1 无法加载http://localhost:52008/Account/GetJWT:预检响应没有 HTTP ok 状态。

从帐户控制器:

[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 });
}
}

调用上述控制器的 Angular 代码:

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;
    });
  }

}

标签: c#angularpost

解决方案


推荐阅读