如何使用 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)
我有一个网络API。
[HttpPost]
[Route("syncData")]
public async Task<IHttpActionResult> syncData(string webUrl, string Title, string Id)
{
try
{
...
}
}
尝试使用 JQuery、
调用此 APIvar 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)