私はaxios POSTリクエストをnpmパッケージのドキュメントから推奨されているように書いています:
var data = {
'key1': 'val1',
'key2': 'val2'
}
axios.post(Helper.getUserAPI(), data)
.then((response) => {
dispatch({type: FOUND_USER, data: response.data[0]})
})
.catch((error) => {
dispatch({type: ERROR_FINDING_USER})
})
それは機能しますが、ヘッダーを受け入れるようにバックエンドAPIを変更しました。
コンテンツタイプ: 'application/json'
承認:「JWT fefege ...」
現在、このリクエストはPostmanで正常に機能しますが、axios呼び出しを作成するとき、this linkをたどって、できません動作するようにします。
400 BAD Request
エラーが常に発生しています。
変更したリクエストは次のとおりです。
axios.post(Helper.getUserAPI(), {
headers: {
'Content-Type': 'application/json',
'Authorization': 'JWT fefege...'
},
data
})
.then((response) => {
dispatch({type: FOUND_USER, data: response.data[0]})
})
.catch((error) => {
dispatch({type: ERROR_FINDING_USER})
})
どんな助けも大歓迎です。
Axiosを使用する場合、カスタムヘッダーを渡すには、最後の引数としてヘッダーを含むオブジェクトを指定します
Axiosリクエストを次のように変更します。
const headers = {
'Content-Type': 'application/json',
'Authorization': 'JWT fefege...'
}
axios.post(Helper.getUserAPI(), data, {
headers: headers
})
.then((response) => {
dispatch({
type: FOUND_USER,
data: response.data[0]
})
})
.catch((error) => {
dispatch({
type: ERROR_FINDING_USER
})
})
カスタムヘッダーを使用したaxios.postリクエストの完全な例を次に示します
var postData = {
email: "[email protected]",
password: "password"
};
let axiosConfig = {
headers: {
'Content-Type': 'application/json;charset=UTF-8',
"Access-Control-Allow-Origin": "*",
}
};
axios.post('http://<Host>:<port>/<path>', postData, axiosConfig)
.then((res) => {
console.log("RESPONSE RECEIVED: ", res);
})
.catch((err) => {
console.log("AXIOS ERROR: ", err);
})
Shubhamの回答は私にはうまくいきませんでした。
Axiosライブラリを使用してカスタムヘッダーを渡す場合、キー名「headers」を持つオブジェクトとしてヘッダーを作成する必要があります。ヘッダーキーにはオブジェクトが含まれている必要があります。ここでは、Content-TypeとAuthorizationです。
以下の例は正常に機能しています。
var headers = {
'Content-Type': 'application/json',
'Authorization': 'JWT fefege...'
}
axios.post(Helper.getUserAPI(), data, {"headers" : headers})
.then((response) => {
dispatch({type: FOUND_USER, data: response.data[0]})
})
.catch((error) => {
dispatch({type: ERROR_FINDING_USER})
})
または、作成時に読み取ることができないvuejsプロトタイプのプロパティを使用している場合、ヘッダーを定義して書き込むこともできます。
storePropertyMaxSpeed(){
axios.post('api/property', {
"property_name" : 'max_speed',
"property_amount" : this.newPropertyMaxSpeed
},
{headers : {'Content-Type': 'application/json',
'Authorization': 'Bearer ' + this.$gate.token()}})
.then(() => { //this below peace of code isn't important
Event.$emit('dbPropertyChanged');
$('#addPropertyMaxSpeedModal').modal('hide');
Swal.fire({
position: 'center',
type: 'success',
title: 'Nova brzina unešena u bazu',
showConfirmButton: false,
timer: 1500
})
})
.catch(() => {
Swal.fire("Neuspješno!", "Nešto je pošlo do đavola", "warning");
})
}
},
Jsonは二重引用符でフォーマットする必要があります
好む:
headers: {
"Content-Type": "application/Jason",
"Authorization": "JWT fefege..."
}
だけでなく:
headers: {
'Content-Type': 'application/json',
'Authorization': 'JWT fefege...'
}