如何解决“无法读取未定义的属性“标题”
我正在使用以下代码在 Lambda Edge 中设置会话标头以响应。但我总是收到这个错误。
{
"errorType": "TypeError","errorMessage": "Cannot read property 'headers' of undefined","stack": [
"TypeError: Cannot read property 'headers' of undefined"," at Runtime.exports.handler (/var/task/index.js:118:30)"," at Runtime.handleOnce (/var/runtime/Runtime.js:66:25)"
]
}
我使用的代码是这个
exports.handler = function (event,config,callback) {
const request = event.Records[0].cf.request;
console.log(event.Records[0].cf);
const response = event.Records[0].cf.response;
const headers = response.headers;
getConfigCached(request,function (err,config) {
if (err) {
callback(err,null);
}
else if (request.uri !== "/code" && !redirectIfNotAuthenticated(config,request,callback)) {
callback(null,request);
}
else if (request.uri == "/code") {
console.log('INSIDE CODE');
let access_token = accesstokenCallback(request,callback);
console.log(access_token);
headers['session-token'] = [{ key: 'Session-Token',value: access_token }];
callback(null,response);
}
});
};
CloudFront 触发器设置为查看者请求
解决方法
请检查您在创建 Lambda@Edge 时配置的设置。
它应该设置为 Response origin
以便您能够设置响应标头。
顺便说一句,有一个创建这种 Lambda@edge 的蓝图 AWS Blueprint
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。