Javascript 尝试使用Apollo客户端将JWT令牌从异步存储获取到请求头时未处理的承诺拒绝
我正在使用Apollo client的setContext和createHttpLink函数将JWT令牌从存储器中输出到请求头上,但我一直收到一个错误:Javascript 尝试使用Apollo客户端将JWT令牌从异步存储获取到请求头时未处理的承诺拒绝,javascript,react-native,graphql,apollo,apollo-client,Javascript,React Native,Graphql,Apollo,Apollo Client,我正在使用Apollo client的setContext和createHttpLink函数将JWT令牌从存储器中输出到请求头上,但我一直收到一个错误: [未处理的承诺拒绝:错误:响应未成功:收到状态代码500] 当我像这样创建apollo客户端对象时,我的应用程序运行得非常好: const client = new ApolloClient({ uri: 'http://<myIPaddress>:4000/graphql', cache: new InMemoryCach
[未处理的承诺拒绝:错误:响应未成功:收到状态代码500]
当我像这样创建apollo客户端对象时,我的应用程序运行得非常好:
const client = new ApolloClient({
uri: 'http://<myIPaddress>:4000/graphql',
cache: new InMemoryCache()
});
500
通常表示服务器端错误。这个错误可能不在客户端。我也是这么想的,但是当这个错误被执行时,我的服务器上什么也没有发生。它只是在客户端崩溃时保持正常运行。您应该在浏览器devtools的“网络”选项卡中查找返回的500
,并查看错误是否包含更多信息。
const httpLink = createHttpLink({uri: 'http://<myIPaddress>:4000/graphql'});
const authLink = setContext(async (req, { headers }) => {
const token = await AsyncStorage.getItem('AUTH_TOKEN');
return {
headers: {
...headers,
Authorization: token ? `Bearer ${token}` : null
}
};
});
const client = new ApolloClient({
link: authLink.concat(httpLink),
cache: new InMemoryCache()
});
import {
ApolloClient,
ApolloProvider,
createHttpLink,
InMemoryCache
} from '@apollo/client';
import { setContext } from '@apollo/client/link/context';