ReactJSでプログラミング中にAxiosを使用していて、サーバーにDELETEリクエストを送信するふりをしています。
そのためには、ヘッダーが必要です。
headers: {
'Authorization': ...
}
体はで構成されています
var payload = {
"username": ..
}
私はインターWebで検索してきましたが、DELETEメソッドは「param」を必要とし、「data」を受け入れないことだけを発見しました。
私はそれを次のように送信しようとしています:
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の2つのパラメーターを受け入れます。 config.dataを使用して、応答本文を次のように設定できます。
axios.delete(url, { data: { foo: "bar" } });
ここを参照してください- https://github.com/axios/axios/issues/897
以下は、さまざまなhttp動詞をaxiosで送信するために必要な形式の簡単な要約です。
GET
:2つの方法
axios.get('/user?ID=12345')
.then(function (response) {
// Do something
})
axios.get('/user', {
params: {
ID: 12345
}
})
.then(function (response) {
// Do something
})
上記の2つは同等です。 2番目の方法でparams
キーワードを観察します
POST
およびPATCH
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は rlおよびオプションの構成を渡す です。
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
を介していくつかのヘッダーを持つHTTP DELETEを送信するには、次のようにしました。
const deleteUrl = "http//foo.bar.baz";
const httpReqHeaders = {
'Authorization': token,
'Content-Type': 'application/json'
};
// check the structure here: https://github.com/axios/axios#request-config
const axiosConfigObject = {headers: httpReqHeaders};
axios.delete(deleteUrl, axiosConfigObject);
さまざまなHTTP動詞(GET、POST、PUT、DELETE)のaxios
構文は注意が必要です。これは、2番目のパラメーターがHTTP本文であると想定されている場合もあれば、必要でない場合は2番目としてヘッダーを渡すためですパラメータ。
ただし、HTTPボディなしでHTTP POSTリクエストを送信する必要がある場合、2番目のパラメーターとしてundefined
を渡す必要があるとします。
構成オブジェクトの定義( https://github.com/axios/axios#request-config )に従って、data
を介してHTTP呼び出しでHTTP本文を渡すことができることに留意してくださいaxios.delete
を呼び出すときのフィールド。ただし、HTTP DELETE動詞の場合は無視されます。
時々HTTPボディである2番目のパラメーターと、config
のaxios
オブジェクト全体との間のこの混乱は、HTTPルールの実装方法が原因です。 HTTPコールを有効と見なすために、HTTPボディが不要な場合があります。
削除の場合、次のように行う必要があります
axios.delete("/<your endpoint>", { data:<"payload object">}})
それは私のために働いた。
同じ問題に遭遇しました...カスタムaxiosインスタンスを作成することで解決しました。それを使用して、認証済みの削除リクエストを作成します。
const token = localStorage.getItem('token');
const request = axios.create({
headers: {
Authorization: token
}
});
await request.delete('<your route>, { data: { <your data> }});