.net 无法将POST请求发送到,NET API使用浏览器,但与Postman一起使用:故障排除提示?

xzv2uavs  于 2023-05-02  发布在  .NET
关注(0)|答案(1)|浏览(159)

我遇到了一个问题,他们无法发送POST请求到他们的。NET API使用他们的浏览器,但它与 Postman 。

//angular
const url = "http://localhost:5001/ApplicationManager/saveForm";
    const model = {
      firstName: "1234",
    };
    console.log(model);
    const headers = new HttpHeaders({
      "Content-Type": "application/x-www-form-urlencoded",
    }); //{ headers: headers }

    this.http.post(url, model, { headers: headers }).subscribe(
      (res) => {
        console.log("Form data saved successfully.");
      },
      (err) => {
        console.error("Error saving form data:", err);
      }
    );

代码是我的Angular发送post请求:

[HttpPost("saveForm")]
public IActionResult SaveForm([FromBody] DemoModel model)
{
    try
    {
        Console.WriteLine("Form data saved successfully.");
        // TODO: Validate form data and save to file or database
        Console.WriteLine(JsonSerializer.Serialize(model));
        return Ok();
    }
    catch (Exception ex)
    {
        _logger.LogError(ex, "Failed to save form data");
        Console.WriteLine("Error:");
        return BadRequest();
    }
}

这就是接收它的东西。net6
我收到的错误是一个HTTP失败响应,状态为0,statusText为Unknown Error,当试图将表单保存到URL http://localhost:5001/ApplicationManager/saveForm时。

Post http://localhost:5001/ApplicationManager/saveForm net::ERR_EMPTY_RESPONSE

我可以做一个成功的后请求与 Postman ,但不是与我的浏览器。
尝试实施CORS。

yfwxisqw

yfwxisqw1#

您的API需要application/json内容类型,因此您需要将模型字符串化

let model= JSON.stringify( {firstName: "1234" } );

和内容类型

{headers : new HttpHeaders({ 'Content-Type': 'application/json' })}

或者,如果您使用的是最新版本的angular,则只需从代码中删除header,因为angular默认使用application/json

http.post(url, model)

关于net::ERR_EMPTY_RESPONSE,尝试返回一些东西

return Ok(model);

相关问题