Angular HTTP客户端帖子调用给出404错误

时间:2018-09-11 15:02:02

标签: angular angular-httpclient

我有在本地运行的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

2 个答案:

答案 0 :(得分:0)

您可能会遇到CORS问题,请检查控制台或错误以查看是否有任何CORS相关问题。

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

答案 1 :(得分: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核心中的帖子正文,它应该看起来像这样

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

 // where… 
 public class MyRequest {
   public string TestParam {get; set;}
 }