我有在本地运行的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获取请求可以正常工作。 预先感谢!
答案 0 :(得分:0)
您可能会遇到CORS问题,请检查控制台或错误以查看是否有任何CORS相关问题。
答案 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;}
}