我有一个graphql api和一个带有apollo client的vue.js前端,用于从后端请求数据。它到目前为止工作正常。
服务器在每个响应头中使用新的JWT-Token进行应答,这是我需要的。所以解决方案应该很简单..一个afterware,它从每个响应中获取新密钥并更新相应的存储条目。 但 ..标题为空。
这是后件:
apolloClient.networkInterface.useAfter([{
applyAfterware({ response }, next) {
if (process.env.NODE_ENV === 'development') {
console.log('got new response', response);
}
if (response.status === 401) {
store.commit('logout');
store.commit('routeLogin');
}
next();
}
}]);
以下是响应的显示方式:
以下是实际发送的内容:
我想念一下吗?
更新
我找到了similar case in the issue tracker,已通过添加Access-Control-Expose-Headers
来解决。所以我将它们添加到我的服务器配置中。现在响应看起来像这样,而apollos header对象仍然是空的:
答案 0 :(得分:0)
您必须删除{}。
来自:
applyAfterware(res, next) {
为:
apolloClient.networkInterface.useAfter([{
applyAfterware(res, next) {
console.log("response:", res.options.headers);
if (res.response.status === 401) {
store.commit('logout');
store.commit('routeLogin');
// logout();
}
next();
}
}]);
现在您可以获得完整的标题信息。
function change(x){
document.body.style.backgroundColor = x;
}