《JavaScript》axiosでerror(エラー)をobject(オブジェクト)で受け取る方法

プログラミング

errorをobjectで取れない事象にハマった

Chomeのconsoleでの出力が文字列

エンドポイントがエラーを返す時、catchでそのresponseを拾うのがaxiosの機能であると思うのですが、拾ったerrorをchomeのconsoleで見ると以下の文字列になっていました。

ここで私は完全にハマってしまいました。objectでerrorを拾いたいのに文字列で取得していると思ったからです。

 

解決方法

errorは文字列ではなかった

結論から言うと「chomeのconsoleに出力された文字列はコード上では文字列ではなくobjectであった」です。gitのissueをみて自分の誤りに気がつきました。

You can also use a global interceptor and reject only the error.response. The problem is when the console.log tries to output the error, the string representation is printed, not the object structure, so you do not see the .response property.

引用:「Axios catch error returns javascript error not server response」

Axios catch error returns javascript error not server response · Issue #960 · axios/axios
Im trying to catch validation errors from the server. Code: axios.post('/formulas/create', { name: "", parts: "" }) .then( (response...

consoleでは文字列(string)のように出力されますが、実際はobjectです。完全にハマってしまいました。実際に以下のconsole.logを変えて出力すると

objectの形式で拾うことができていました。私のようにハマってしまう方がもしかしたら、いるかもしれないので記事にしておきました。

タイトルとURLをコピーしました