Angular http客户端发布调用给出404错误

问题描述 投票:0回答:2

我在我的本地运行asp.net核心web api,我可以通过Postman使用post方法发出请求。但是当我按照以下方式使用httpclient以角度进行时,它返回404。

import { HttpClientModule,HttpClient,HttpHeaders,HttpParams } from "@angular/common/http";

var headers = new HttpHeaders().set("Content-Type", "application/json");  
var content = { "testParam":"testvalue" };

    this.httpClient.post("http://localhost:50979/api/test",JSON.stringify(content),{ headers: headers }).subscribe(
      data => {
          console.log("POST Request is successful ", data);
      },
      error => {
          console.log("Error", error);
      }
    );   

那么这段代码有什么问题呢?我的api运行正常,我能够使用邮递员正确获取数据。使用httpclient获取请求正常。提前致谢!

enter image description here

enter image description here

angular angular-httpclient
2个回答
0
投票

您可能遇到了CORS问题,请检查控制台或错误以查看是否存在与CORS相关的问题。

https://angular.io/guide/http#security-xsrf-protection


0
投票

我猜,但..

1)确保您的请求正确

// correct request body
{ "testParam": "foo" }

// WRONG, we don't want a string!!!
"{ testParam... }"

https://datawookie.netlify.com/blog/2016/09/view-post-data-using-chrome-developer-tools/

2)确保您没有CORS问题,您将看到错误告诉您有关“OPTIONS”请求的信息。您也可以在开发工具>网络中进行检查。

3)阅读asp核心中的post body,这应该是这样的

 public Task MyAction([FromBody] MyRequest myModel) { … }

 // where… 
 public class MyRequest {
   public string TestParam {get; set;}
 }
© www.soinside.com 2019 - 2024. All rights reserved.