如何使用 JQuery 调用 HttpPost 方法

How to call HttpPost method using JQuery

我有一个网络API。

  [HttpPost]
    [Route("syncData")]
    public async Task<IHttpActionResult> syncData(string webUrl, string Title, string Id)
    {
        try
        {
            ...
         }
      }

尝试使用 JQuery、

调用此 API
var settings = {
"url": "https://localhost:44370/api/SPHome/syncData",
"method": "POST",
"timeout": 0,
"Content-Type": "application/json",
"data": JSON.stringify({
  "webUrl": "Url",
  "Title": "Test",
  "Id": "Sample"
})
};

$.ajax(settings).done(function (response) {
 console.log(response);
 });

如果我在查询中传递了所有三个参数,它会命中我的 API 但是当我传递正文内容中的数据时,我得到状态代码:404

请问我遗漏了什么?

发生这种情况是因为 .NET 无法找到与您提供的负载相匹配的 POST 路由。您正在将对象传递给操作,但操作需要参数。

您需要将控制器操作的参数转换为具有所需三个字段的对象,例如

public class MyObject
{
  public string WebUrl {get;set;}
  public string Id {get;set;}
  public string Title {get;set;}
}

然后在控制器动作本身 -

public async Task<IHttpActionResult> syncData(MyObject smartNameHere)