https://github.com/msonowal/nuxt-bug-reproduce-link
在此添加
plugins
目录将文件命名为axios.js
并在nuxt config plugins数组中添加链接 访问任何axios呼叫为404的路线
下面的axios.js文件内容
export default function({ $axios, error }) {
$axios.onError((responseError) => {
if (responseError.response.status === 404) {
error({ statusCode: 404, message: 'Post not found from interceptor' })
}
})
}
显示nuxt应用程序中定义的带有404代码的错误响应 在拦截器中找不到帖子
但是
不重定向到301
它显示默认nuxt错误
NuxtServerError
Request failed with status code 404
此错误报告可在Nuxt社区(#c305)上获得
答案 0 :(得分:1)
这似乎对我有用
_.vue
async asyncData(context) {
...
try {
const response = await context.$axios(options);
...
} catch (error) {
context.error({ statusCode: 404, message: 'Page not found' });
}
}
错误.vue
<template>
<h1>{{ error.message }}</h1>
</template>
<script>
export default {
head() {
return {
title: `${this.statusCode} | ${this.message}`,
}
},
props: {
error: {
type: Object,
default: null
}
},
computed: {
statusCode() {
return (this.error && this.error.statusCode) || 500;
},
message() {
return this.error.message;
}
}
}
</script>
答案 1 :(得分:0)
这是您处理错误404的方式
asyncData({ $axios, params, error }) {
return $axios
.get(`/user/${params.profile}`)
.then(res => {
return { user: res.data.data };
})
.catch(e => {
error({ statusCode: 404, message: 'Page not found' });
});
},