Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 400 Angular 9中来自WebApi的错误请求(使用HttpClient)_C#_Angular_Rest_.net Core_Asp.net Core Webapi - Fatal编程技术网

C# 400 Angular 9中来自WebApi的错误请求(使用HttpClient)

C# 400 Angular 9中来自WebApi的错误请求(使用HttpClient),c#,angular,rest,.net-core,asp.net-core-webapi,C#,Angular,Rest,.net Core,Asp.net Core Webapi,下面是返回错误请求的Asp.net核心WebAPI。当我通过postman调用web api时,它成功地工作了。但是当我打电话给angular的时候它就不起作用了 [HttpPost] [Route("Login")] public async Task<ActionResult> Post([FromBody]LoginCommand command) { var result = await Mediator.Send(comman

下面是返回错误请求的Asp.net核心WebAPI。当我通过postman调用web api时,它成功地工作了。但是当我打电话给angular的时候它就不起作用了

    [HttpPost]
    [Route("Login")]
    public async Task<ActionResult> Post([FromBody]LoginCommand command)
    {
        var result = await Mediator.Send(command);

        if (!result.Succeeded)
        {
            return BadRequest(result.Errors);
        }

        return Ok(result.Data);
    }
[HttpPost]
[路线(“登录”)]
公共异步任务

网络:


如果您使用asp.net core 3.0+,则需要在asp.net core web api项目
startup.cs
中配置
CORS
,在
app.UseRouting()
app.UseEndpoints()之间添加
app.UseCors()

app.UseRouting();

app.UseCors( builder => 
{ 
  builder.WithOrigins("https://localhost:5001")   
         .AllowCredentials() 
         .AllowAnyMethod() 
         .AllowAnyHeader(); 
});

app.UseEndpoints(endpoints =>
{
    endpoints.MapControllers();
});

请参阅

能否将您的chrome设置为英语并重新拍摄屏幕截图?浏览器控制台输出对于帮助您至关重要。它看起来像一个CORS问题。该服务是否在与客户端不同的应用程序中运行?看起来您的选项请求返回的是204。是否确定API端点URL(特别是端口号)以确保在UI指向的同一URL中运行API?是的,服务运行在与客户端不同的应用程序中。
post(url: string, data: Object = {}): Observable<any> {

const headers = { 'Accept': '*/*', 'Access-Control-Allow-Origin': '*', 'Access-Control-Allow-Methods': 'POST, GET, OPTIONS, HEAD','Content-Type': 'application/json', 
'Access-Control-Allow-Headers': 'X-Requested-With,content-type' }

let result = this.http.post<any>(`${this.apiURL}${url}`, JSON.stringify(data), { headers });
console.log(result);
return result;
app.UseRouting();

app.UseCors( builder => 
{ 
  builder.WithOrigins("https://localhost:5001")   
         .AllowCredentials() 
         .AllowAnyMethod() 
         .AllowAnyHeader(); 
});

app.UseEndpoints(endpoints =>
{
    endpoints.MapControllers();
});