我正在尝试使重定向在AWS API网关中工作。我将方法响应配置为在报头中包含Location,并在集成响应上将参数设置为: Location = integration.response.body.location。但是,当我测试API时,它不会将我重定向到该位置,而只是在API页面上显示该位置的文本。以前有没有人遇到过这种情况?
显示的字符串实际上是正确的位置,但API不会将我重定向到该URL。
发布于 2018-07-01 13:07:02
对于使用API网关的Lambda重定向,有一个更简单的方法:
module.exports.handler = (event, context, callback) => Promise.resolve(event)
// .then(doStuffWithTheEventObject)
.then(() => callback(null, {
statusCode: 302,
headers: {
Location: 'https://gohere.com',
},
})) // Success!
.catch(callback); // Fail function with error
发布于 2019-12-07 20:55:45
这是我在Lambda中实际使用的。我把API放在一边。API收集发送给它的数据:表单数据。这是一段非常简单的代码,你可以用它做很多事情。
我在lambda中处理表单数据:提取变量,重新验证它们,将它们保存到dynamoDB中,然后发出一封电子邮件,要求新注册人员验证他们满足GDPR的意图,并确保我从有能力和有兴趣进行交互的人那里捕获了一个真实的电子邮件地址,然后提供屏幕上的响应。
屏幕上的响应是重定向到特定的感谢页面,解释他们需要查看电子邮件并单击链接。
在这个例子中,你所需要做的就是为你的登录页面切换Amazon.com。
通过使用变量: redirectURL,我可以改变响应,并为不同网站页面上的一系列不同表单使用API和Lambda。如果我愿意,我可以将重定向设置为表单本身中的隐藏表单域。
let redirectURL= 'https://amazon.com/';
var response = {
"statusCode": 302,
"headers": {
Location: redirectURL,
}
};
callback(null, response);
发布于 2016-06-25 00:29:25
您确定API终结点返回302吗?
确保没有为您的方法定义除302之外的任何2xx或3xx响应代码。您只能有一个“成功”的响应代码映射。2xx和3xx代码都被认为是成功代码。
https://stackoverflow.com/questions/38009315
复制相似问题