我在我的本地运行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获取请求正常。提前致谢!
您可能遇到了CORS问题,请检查控制台或错误以查看是否存在与CORS相关的问题。
我猜,但..
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;}
}