Как вызвать метод HttpPost, используя JQuery - PullRequest
0 голосов
/ 06 января 2020

У меня WebAPI.

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

пытается вызвать этот API с помощью JQuery,

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

Могу ли я узнать, чего мне не хватает в этом?

1 Ответ

2 голосов
/ 06 января 2020

Это происходит потому, что. 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...