Запрос Axios не может получить доступ к соответствующему методу в серверной частиC#

Место общения программистов C#
Ответить
Anonymous
 Запрос Axios не может получить доступ к соответствующему методу в серверной части

Сообщение Anonymous »

У меня возникла проблема с использованием запроса Axios для доступа к методу в бэкэнде.
К сожалению, мне приходится использовать готовый код, созданный другими как во бэкэнде, так и во внешнем интерфейсе, и существует ограничение на то, сколько я могу изменить или напишите заново.
Фронтенд:

Код: Выделить всё

  const response = await axiosConfig.put(
`my_url/${id}`,
null,
{
params: {
...body,
},
}
);
Я проверил журналы консоли и обнаружил, что идентификатор и тело имеют правильные значения. Насколько я понимаю, проблема в передаче их на бэкенд.
Бэкенд:

Код: Выделить всё

    [HttpPut("{id}"), Authorize]
public async Task UpdateItem(int id, [FromQuery] Request request)
Я даже не могу его отладить, код вообще не входит в этот метод.
Окончательный отправленный URL (из журналов) выглядит вот так:

https://localhost:7216/api/Items/592087 ... 0882578014

Идентификатор здесь отображается как Var2.
Может быть, проблема в том, что серверная часть требует идентификатор и другие параметры отдельно и И я бы пришёл первым, когда здесь всё в "бардаке"? Также некоторые переменные не имеют значений, я действительно не загружал ни одну из них, поскольку они не должны быть обязательными, но, может быть, это может вызвать проблему?
Что я пробовал далеко:
  • Изменение структуры запроса во внешнем интерфейсе, например добавление «Id» в «params» или за его пределами:

Код: Выделить всё

      const response = await axiosConfig.put(
`my_url/${id}`,
null,
{
params: {
id,
...body,
},
}
);

Код: Выделить всё

      const response = await axiosConfig.put(
`my_url/${id}`,
id,
{
params: {
...body,
},
}
);
  • Чтобы удалить "Id" из HttpPut("{id}") в серверной части или из параметров функции.

    Код: Выделить всё

     [HttpPut, Authorize]
    public async Task UpdateItem(int id, [FromQuery] Request request)
    
    [HttpPut("{id}"), Authorize]
    public async Task UpdateItem([FromQuery] Request request)
    
  • Отправляйте только все параметры без идентификатора, поскольку он уже присутствует в URL-адресе, или/и добавляйте его как один из параметров.
  • Отправляйте только все параметры без идентификатора, поскольку он уже присутствует в URL-адресе, и/или добавляйте его как один из параметров.
  • Отправляйте только все параметры без идентификатора, поскольку он уже присутствует в URL-адресе, и/или добавьте его как один из параметров.
  • Отправляйте только все параметры без идентификатора, поскольку он уже присутствует в URL-адресе, или/и добавьте его как один из параметров.
  • Отправляйте только все параметры без идентификатора, поскольку он уже присутствует в URL-адресе, и/или добавьте его как один из параметров.
  • Отправляйте только все параметры без идентификатора, поскольку он уже присутствует в URL-адресе. p>

Код: Выделить всё

      const response = await axiosConfig.put(
`my_url`,
null
{
params: {
...body,
},
}
);
  • Пыталась отправить только идентификатор без всего остального, он имеет доступ к методу, поэтому ошибка связана не с неправильным вводом имени функции. или что-то еще.
Во всех случаях я получаю либо статус 400, либо статус 405.

Подробнее здесь: https://stackoverflow.com/questions/770 ... in-backend
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»