如何使用拦截器更改Axios响应状态

时间:2019-05-11 10:17:57

标签: vue.js axios http-status-code-404

我有一个页面,该页面从api加载一些数据作为主要内容。这些数据或主要内容具有一些相关的内容,而我通过不同的api调用来获取相关的内容。主要内容并不总是伴随着相关内容,因此,在没有相关内容的情况下,api调用将返回404。

我想要的是没有该404,那么如果该呼叫的状态为404,有什么办法可以拒绝该呼叫?

一方面,我正在通过ContentService.js文件请求此调用的主要内容:

getMainContent: () => {
    return resource.get(`/main/content`);
}

然后,从主内容页面继续通话:

ContentService.getMainContent().then(
    res => (this.mainContent = res.data.mainContent),
    err => {
        this.status.err = true;
    }
);

这一切都很好。我得到了这些内容,以防万一我无法进入404页。

在同一页面上,我将相关内容加载到主要内容下的div中,并以相同的方式调用该内容:

getRelatedContent: () => {
    return resource.get(`/related/content`);
}

在我的组件中:

ContentService.getRelatedContent().then(
    res => (this.relatedContent = res.data.relatedContent),
    err => {
        this.error = true;
    }
);

在这种情况下,如果没有相关内容,因为主要内容实际上已加载,我就无法进入404页面,它根本没有任何相关内容,因此我将error设置为true,然后如果该div为空,则将其隐藏。

我的问题是,包含主要内容但没有相关内容的页面由于该api调用而出现404错误。

如果没有返回任何数据并可以避免在这些类型的页面上显示404状态,我是否可以拒绝该调用?

谢谢。

0 个答案:

没有答案