У меня есть что-то подобное в Laravel API для одного из маршрутов:
return response()->json(['message' => "Couldn't Price the car"], 500);
В передней части у меня есть
try {
let data = await Axios.get("blax", {});
} catch(err) {
console.info(err.message);
}
err.message просто показывает сообщение по умолчанию:
request failed with status code 500
вместо показа:
Couldn't Price the car
Как показать свое собственное сообщение?






responseJSON не определено, это просто response
попробуйте это console.info(err.response.message) следующим образом:
try{
let data = await Axios.get("blax", {});
}catch(err){
console.info(err.response.message);
}
попробуйте использовать err.response.message
try{
let data = await Axios.get("blax", {});
}catch(err){
console.info(err.response.message);
}
Мне кажется, ловит отлично:
new Vue({
el: "#demo",
data: {
response: null,
},
async created() {
try {
let data = await axios.get("https://httpstat.us/500", {});
} catch (err) {
console.info('ss', err.message);
this.response = err.message;
}
}
})<script src = "https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<script src = "https://cdnjs.cloudflare.com/ajax/libs/axios/0.19.0/axios.min.js"></script>
<div id = "demo">
Error: {{response}}
</div>Если вы хотите минимизировать свой код, вы можете сделать .catch прямо в вызове axios, например:
let data = axios.get("https://httpstat.us/500", {}).catch(e => e.message);
Этот улов также использует функцию стрелки, урезанную до минимума. Вот пример той же стрелочной функции, только «нормальной»:
let data = axios.get("https://httpstat.us/500", {}).catch((e) => {return e.message});
new Vue({
el: "#demo",
data: {
response: null,
},
async created() {
this.response = await axios.get("https://httpstat.us/500", {}).catch(e => e.message);
}
})<script src = "https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<script src = "https://cdnjs.cloudflare.com/ajax/libs/axios/0.19.0/axios.min.js"></script>
<div id = "demo">
Error: {{response}}
</div>
Вы проверили содержание ответа на вкладке сети вашего браузера?