我有一个服务器,它渲染组件,并在请求发出时返回HTML,而渲染服务器对特定组件进行graphql调用,有时会返回403响应。
代码:
const client = new ApolloClient({
link: new HttpLink({
uri: 'https://url/graphql',
fetch,
headers: {
'csrf-tokens': tokens,
Referer: header_referer,
},
}),
queryDeduplication: false
)}
export const getProperties = async () => {
try {
await client
.query({query, variables})
.then((response) => {
const data = response.data.properties;
if(response.error) {
throw new Error("Error encountered");
}
}
.catch((error) => {
console.log("gettProperites error")
})
} catch (err) {
console.log("Execution failed")
}
}
我在getProperties函数中调用了graphql,每当我收到403错误时,pod就会崩溃。我已经将调用封装在try-catch块中,并在. then()中添加了一个额外的if条件,以检查响应中是否存在任何错误。但是,403响应仍然没有被捕获,并导致pod崩溃。
上面的代码是我正在运行的代码的整体结构,我已经删除了一些不需要保持它小的细节。
1条答案
按热度按时间3hvapo4f1#
尝试拦截器。我只能告诉vue,但我认为在react非常相似: