ローカルから別のドメインにPOSTリクエストを送信しています。 (Corsの問題を回避するために開発モードでChromeを使用しています)
これは私のコードです:
axios('https://..../signup', {
method: 'POST',
data: {
email: '[email protected]',
password: 'fdsfds',
confirmPassword: 'fdsfds'
}
}).then(function(response) {
console.log('response::', response.data);
})
.catch(function(error) {
console.log('ERROR::', error.data);
});
問題は、応答としてステータス400 (Bad Request)
しか取得できないのに対し、curl cli / postmanを介して同じリクエストを送信すると、ステータスに加えて次のような本文が取得されることです。
[
{
"param": "email",
"msg": "Email is not valid"
},
{
"param": "password",
"msg": "Password must be at least 4 characters long"
},
{
"param": "confirmPassword",
"msg": "Passwords do not match"
}
]
しかし、axiosではありません。 これはCorsの問題にはなり得ません。これは、get / postクエリを正常に実行できるため、ステータスとともに返される本文を取得できないように見えるためです。
console.log('ERROR::', error.response.data);
がその仕事をしたことを気にしないでください、これが明確に文書化されることを願っています。
@samayoこれに答えてくれてありがとう。 単純なXHRリクエストを使用すると、エラー応答を返すまでは問題なく機能しましたが、axiosを使用すると、なぜエラー時に応答を返すことができなかったのか疑問に思いました。 ドキュメントで見つけやすくする必要があることに同意しました。
res statusが200の場合、非同期待機構文を使用してPOSTリクエストを送信すると、応答本文が返されますが、応答ステータスが400の場合、応答本文は送信されません。 async await構文を使用してエラーを取得するにはどうすればよいですか?
最も参考になるコメント
console.log('ERROR::', error.response.data);
がその仕事をしたことを気にしないでください、これが明確に文書化されることを願っています。