You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AngularJS使用$http调用.NET Core API返回400 Bad Request错误如何解决

问题原因

你遇到的400错误是因为前后端的请求体格式不匹配:

  • 前端传递的是完整JSON对象 {"transactionJson": "hello"}
  • 后端[FromBody]直接绑定string类型参数时,.NET Core的模型绑定要求请求体为原始JSON字符串(即直接传"hello",外层不带对象包装),格式不匹配导致绑定失败,返回400。
修复方案

有两种可行修复方式,按需选择即可:

方案1:调整后端接收逻辑(更通用,适合后续参数扩展)

新增一个参数接收模型类:

public class TransactionRequest
{
    public string TransactionJson { get; set; }
}

修改接口方法的参数声明:

[Route("~/api/message/transaction/{transactionId}")]
[HttpPost]
public async Task<ActionResult<DeviceEventsTransactionmsg>> PostTransaction([FromBody] TransactionRequest request)
{
    // 业务逻辑中通过 request.TransactionJson 取值
}

方案2:调整前端传值格式(适合参数固定为单个字符串的场景)

修改AngularJS的$http请求参数,直接传递字符串值,不要包装为对象:

$http({
      method: 'POST',
      url: '/api/message/transaction/' + this.transaction.id,
      data: "hello", // 直接传字符串,不要用对象包装
      headers: {'Content-Type': 'application/json'} // 显式指定请求类型为JSON
    })
    .then(function (response) {
        var r = response;
    })

内容的提问来源于stack exchange,提问作者Chris Halcrow

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 21:39:00