当在AWS Lambda Edge中使用Node.js 10.x运行时时,会出现TypeError错误,指示禁止修改特定的HTTP标头。解决此问题的方法是使用另一种方法来设置标头。
以下是一些代码示例:
错误示例:
exports.handler = async (event) => {
const response = event.Records[0].cf.response;
response.headers['X-Content-Type-Options'] = [{ key: 'X-Content-Type-Options', value: 'nosniff' }];
return response;
};
修复示例:
const addHeader = (name, value, headers) => {
return {
...headers,
[name.toLowerCase()]: [{ key: name, value: value }],
};
};
exports.handler = async (event) => {
const response = event.Records[0].cf.response;
response.headers = addHeader('X-Content-Type-Options', 'nosniff', response.headers);
return response;
};
通过以上的修复示例,您可以避免AWS Lambda Edge TypeError修改标题错误。