首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >c# asp .net核心HTTP POST请求适用于邮递员,但不适用于我的angular客户端(404错误)

c# asp .net核心HTTP POST请求适用于邮递员,但不适用于我的angular客户端(404错误)
EN

Stack Overflow用户
提问于 2018-10-18 02:36:20
回答 1查看 2.2K关注 0票数 1

我的c# asp .net核心Rest服务器有问题。我创建了一个带有测试路由的AuthenticationController,它似乎可以与邮递员一起工作,但当我试图在我的Angular 6应用程序中获得相同的结果时,我得到了一个404错误,即找不到路由,尽管它是完全相同的url。

我的Asp .net核心控制器:

代码语言:javascript
复制
[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");
    }

}

我调用路由的Angular服务:

代码语言:javascript
复制
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客户端调用路由:

从Postman调用路由:

asp .net核心服务器控制台的输出:

正如您在来自服务器的控制台日志中看到的,404和200请求已完成。有404的是我的应用程序,有200的是Postman的。

注意:

CORS应该不是问题,因为我有google chrome扩展。

我也试着用angular支持的代理配置来避免这个错误。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-18 06:42:08

正如您所看到的,您收到了一个404 for OPTIONS请求。我们在发送跨域请求时发送options请求。

请确保已配置asp.net应用程序中的CORS。因为当您使用POSTMAN时,它不是跨域请求。

您需要添加响应头部Access-Control-Allow-Origin:*

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52861515

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档