我正在使用
当出现此类错误时,是否可以通过对GraphQL端点的调用发送301重定向给客户端?
我尝试过像
我还尝试过使用以下内容截断
graphql-server-express
构建一个GraphQL服务器,该服务器消耗REST API。 我遇到的情况是当用户未经身份验证即无权访问资源时,REST调用可能会返回301或401状态代码。 我在解析GraphQL查询时,在客户端设置了一个cookie并将其转发到REST API。当出现此类错误时,是否可以通过对GraphQL端点的调用发送301重定向给客户端?
我尝试过像
res.sendStatus(301)
这样的内容放在formatError
中,但这样做效果不佳,因为graphql-server-express
会尝试在此之后设置标头。我还尝试过使用以下内容截断
graphqlExpress
中间件:export default graphqlExpress((req, res) => {
res.sendStatus(301);
return;
});
虽然客户端收到了正确的结果,但服务器仍然会打印错误信息(在这种情况下是 TypeError: Cannot read property 'formatError' of undefined
– 很可能是因为中间件接收到了空选项)。
有没有一种好的方法来解决这个问题?谢谢!
fetch
只是跟随重定向并加载该资源。所以可能最好的方法就像你提到的,在我的解析器中抛出自定义重定向错误,客户端知道如何处理 - 也许使用apollo client afterware(在链接的示例中,他们实际上正在使用响应的状态代码来响应注销)。 - amann