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

JavaScript fetch调用ASP.NET WebMethod传参失败提示无参数值是什么原因?

问题根因
  • ASP.NET 框架中标记了 <WebMethod()> 的静态接口,当收到 Content-Type: application/json 的POST请求时,只会从请求体的JSON结构中读取参数,完全忽略URL QueryString中的参数,你将aPrice放在URL中传递,后端自然无法识别,因此抛出No value for parameter 'aPrice'错误。
  • 你当前的JS代码存在语法错误:headers配置项结束后缺少逗号分隔,会直接导致请求格式异常。
解决方案

将所有需要传递的参数统一放入POST请求体中,参数名需要和后端接口定义的参数名完全一致即可完成自动绑定。

修正后的JS请求示例:

// 构造请求参数,参数名要和后端接口参数aPrice完全对应
const postData = {
  aPrice: "111"
  // 如果有其他purchase中的参数,可在此处添加对应字段,后端接口同步加同名参数即可接收
};

fetch("PayOrder.aspx/CreateStripePaymentIntent", {
  method: "POST",
  headers: {
    'Accept': 'application/json',                                   
    "Content-Type": "application/json"
  },
  body: JSON.stringify(postData)
})
可选校验项

如果修改后仍有异常,可检查Web.config配置,确保开启了POST请求访问WebMethod的权限:

<system.web>
  <webServices>
    <protocols>
      <add name="HttpPost"/>
    </protocols>
  </webServices>
</system.web>

内容的提问来源于stack exchange,提问作者Giorgio Forti

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 17:03:03