Axios: Поддержка удаления тела

Созданный на 13 мая 2017  ·  7Комментарии  ·  Источник: axios/axios

Вероятно, это дизайнерский выбор команды axios, и на то есть веские причины, но я пишу все свои POST/GET/PUT следующим образом:

const res = await axios.post(url, { 
  data: {
    ...
  }
})

И мой сервер иногда ожидает данные внутри тела запроса DELETE (что может быть технически не в соответствии со спецификацией, но, тем не менее, это обычное дело), ​​и в этом случае я должен написать свой DELETE в этой форме:

      const res = await axios({
        method: 'DELETE',
        url: 'url',
        data: {
          ...
        }
      })

Это прекрасно работает, но я вынужден использовать второй синтаксис, потому что axios.delete не поддерживает тело запроса.

Поэтому я хотел бы попросить axios.delete поддерживать тело запроса.

Спасибо

Самый полезный комментарий

axiox.delete поддерживает тело запроса. Он принимает два параметра: url и необязательный config . Вы можете использовать config.data для установки тела ответа следующим образом:

axios.delete(url, { data: { foo: "bar" } });

post , put и patch принимают 3 параметра: url , data и config , так что вы можете можно использовать второй параметр, чтобы установить тело ответа следующим образом:

axios.put(url, { foo: "bar" });

Надеюсь, поможет!

Все 7 Комментарий

Мы часто используем data с запросами GET на сервере, и они транслируются в параметры запроса. Отсутствие поддержки данных для некоторых методов является большим недостатком axios в моих надеждах на более изоморфный код.

Спасибо, здесь я нашел этот ответ

axiox.delete поддерживает тело запроса. Он принимает два параметра: url и необязательный config . Вы можете использовать config.data для установки тела ответа следующим образом:

axios.delete(url, { data: { foo: "bar" } });

post , put и patch принимают 3 параметра: url , data и config , так что вы можете можно использовать второй параметр, чтобы установить тело ответа следующим образом:

axios.put(url, { foo: "bar" });

Надеюсь, поможет!

Я думаю, что README затрудняет понимание:

  // `data` is the data to be sent as the request body
  // Only applicable for request methods 'PUT', 'POST', and 'PATCH'
  // When no `transformRequest` is set, must be of one of the following types:
  // - string, plain object, ArrayBuffer, ArrayBufferView, URLSearchParams
  // - Browser only: FormData, File, Blob
  // - Node only: Stream, Buffer
  data: {
    firstName: 'Fred'
  },

Эта часть: // Only applicable for request methods 'PUT', 'POST', and 'PATCH' особенно.

пожалуйста, добавьте этот комментарий в документы

Это в документах https://github.com/axios/axios#request -method-aliases

в чем разница между этими двумя?

this.$axios.$delete(queryData.url,
        {
          params: { id: String(queryData.id) }
        })
this.$axios.$delete(queryData.url,
        {
          body: { id: String(queryData.id) }
        })

[params] работал на моей стороне

Была ли эта страница полезной?
0 / 5 - 0 рейтинги