http-headers - 如何更改无服务器框架中响应标头的状态码?
问题描述
我想回复个人定义的状态码和一些标题。但我发现即使我将状态码更改为 201,状态码仍然是 200。我定义的标题不在标题中。
我的处理程序喜欢:
function createResponse(status, header, body) {
return {
headers: Object.assign(header, {
'Access-Control-Allow-Origin': '*',
'Content-Type': 'application/json;charset=utf-8'
}),
statusCode: status,
body: JSON.stringify(body)
}
}
export const hello = async (event, context, cb) => {
const rep = {
message: 'v1.0',
event: event
};
cb(null, createResponse(201, {}, rep));
return;
};
我使用 serverless.yml 我的配置是:
functions:
first:
handler: handlers/first.hello
events:
- http:
method: ANY
path: first
integration: lambda
如何检查正确的代码可以更改状态代码和响应标头?我还发现我的标头仍在响应正文中,如何在响应标头中添加我的标头部分?
如果您认为我的集成部分有问题,您能给我正确的配置示例吗?
解决方案
看起来你在标题中有一个嵌套对象。
参考文件,
https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-lambda-proxy-integrations.html
这是发送正确响应的正确示例代码,
exports.handler = function(event, context, callback) {
console.log('Received event:', JSON.stringify(event, null, 2));
var res ={
"statusCode": 200,
"headers": {
"Content-Type": "*/*"
}
};
res.body = "Hello, World !";
callback(null, res);
};
希望能帮助到你。
推荐阅读
- c - struct pthread_rwlock_t 的成员说明
- css - 如何使用 bulma 创建两行
- java - System.out 到字符串
- r - 循环多个 which 语句
- r - 在 R 中运行因子分析之前删除数据集中的异常值
- java - 自第二个方法调用以来,对象为空
- ios - 根据与用户的距离在 SCNScene 上显示对象
- javascript - xmlHttpRequest.responseText 问题(未定义)
- python - 使用 Tensorflow-2.0 tf.optimizers 时如何修复“给定对象不是优化器实例”?
- javascript - 用 lodash 对对象数组进行排序:不工作