[javascript] 본문과 헤더가있는 Axios 삭제 요청?

ReactJS에서 프로그래밍하는 동안 Axios를 사용하고 있으며 DELETE 요청을 서버에 보내는 척합니다.

이렇게하려면 헤더가 필요합니다.

headers: {
  'Authorization': ...
}

그리고 몸은

var payload = {
    "username": ..
}

인터 웹에서 검색 한 결과 DELETE 메서드에 “매개 변수”가 필요하고 “데이터”를 허용하지 않는다는 것만 발견했습니다.

다음과 같이 보내려고했습니다.

axios.delete(URL, payload, header);

또는

axios.delete(URL, {params: payload}, header);

그러나 아무것도 작동하지 않는 것 같습니다 …

누군가 헤더와 본문 모두와 함께 DELETE 요청을 보낼 수 있는지 (그럴 것이라고 생각합니다) 어떻게 할 수 있는지 말해 줄 수 있습니까?

미리 감사드립니다!



답변

그래서 여러 번 시도한 후에 작동한다는 것을 알았습니다.

주문 순서를 따르십시오. 매우 중요합니다. 그렇지 않으면 작동하지 않습니다.

axios.delete(URL, {
  headers: {
    Authorization: authorizationToken
  },
  data: {
    source: source
  }
});


답변

axiox.delete요청 본문을 지원합니다. url 및 선택적 config의 두 매개 변수를 허용합니다. config.data다음과 같이 요청 본문 및 헤더를 설정하는 데 사용할 수 있습니다 .

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

여기를 참조하십시오-https: //github.com/axios/axios/issues/897


답변

다음은 axios로 다양한 http 동사를 보내는 데 필요한 형식에 대한 간략한 요약입니다.

  • GET: 두 가지 방법

    • 첫 번째 방법

      axios.get('/user?ID=12345')
        .then(function (response) {
          // Do something
        })
      
    • 두 번째 방법

      axios.get('/user', {
          params: {
            ID: 12345
          }
        })
        .then(function (response) {
          // Do something
        })
      

    위의 두 가지는 동일합니다. params두 번째 방법에서 키워드를 관찰하십시오 .

  • POSTPATCH

    axios.post('any-url', payload).then(
      // payload is the body of the request
      // Do something
    )
    
    axios.patch('any-url', payload).then(
      // payload is the body of the request
      // Do something
    )
    
  • DELETE

    axios.delete('url', { data: payload }).then(
      // Observe the data keyword this time. Very important
      // payload is the request body
      // Do something
    )
    

핵심 사항

  • get요청은 선택적으로 params쿼리 매개 변수를 올바르게 설정하기 위한 키가 필요합니다.
  • delete본문이있는 요청은 data키 아래에 설정되어야 합니다.


답변

axios. delete 에는 url과 선택적 구성전달 됩니다.

axios.delete (url [, config])

구성에 사용할 수 있는 필드 에는 헤더가 포함될 수 있습니다 .

이렇게하면 API 호출을 다음과 같이 작성할 수 있습니다.

const headers = {
  'Authorization': 'Bearer paperboy'
}
const data = {
  foo: 'bar'
}

axios.delete('https://foo.svc/resource', {headers, data})


답변

나는 같은 문제를 해결했습니다.

axios.delete(url, {data:{username:"user", password:"pass"}, headers:{Authorization: "token"}})


답변

실제로 axios.delete요청 본문을 지원합니다.
두 개의 매개 변수 (a URL및 선택적)를 허용 config합니다. 그건…

axios.delete(url: string, config?: AxiosRequestConfig | undefined)

다음을 수행하여 삭제 요청에 대한 응답 본문을 설정할 수 있습니다.

let config = {
    headers: {
        Authorization: authToken
    },
    data: { //! Take note of the `data` keyword. This is the request body.
        key: value,
        ... //! more `key: value` pairs as desired.
    }
}

axios.delete(url, config)

나는 이것이 누군가에게 도움이되기를 바랍니다!


답변

삭제의 경우 다음과 같이 수행해야합니다.

axios.delete("/<your endpoint>", { data:<"payload object">})

그것은 나를 위해 일했습니다.