首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用响应302从aws api网关重定向

使用响应302从aws api网关重定向
EN

Stack Overflow用户
提问于 2016-06-24 16:54:49
回答 6查看 20.3K关注 0票数 13

我正在尝试使重定向在AWS API网关中工作。我将方法响应配置为在报头中包含Location,并在集成响应上将参数设置为: Location = integration.response.body.location。但是,当我测试API时,它不会将我重定向到该位置,而只是在API页面上显示该位置的文本。以前有没有人遇到过这种情况?

显示的字符串实际上是正确的位置,但API不会将我重定向到该URL。

EN

回答 6

Stack Overflow用户

发布于 2018-07-01 13:07:02

对于使用API网关的Lambda重定向,有一个更简单的方法:

代码语言:javascript
复制
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

此示例来自https://blog.rowanudell.com/redirects-in-serverless/

票数 7
EN

Stack Overflow用户

发布于 2019-12-07 20:55:45

这是我在Lambda中实际使用的。我把API放在一边。API收集发送给它的数据:表单数据。这是一段非常简单的代码,你可以用它做很多事情。

我在lambda中处理表单数据:提取变量,重新验证它们,将它们保存到dynamoDB中,然后发出一封电子邮件,要求新注册人员验证他们满足GDPR的意图,并确保我从有能力和有兴趣进行交互的人那里捕获了一个真实的电子邮件地址,然后提供屏幕上的响应。

屏幕上的响应是重定向到特定的感谢页面,解释他们需要查看电子邮件并单击链接。

在这个例子中,你所需要做的就是为你的登录页面切换Amazon.com。

通过使用变量: redirectURL,我可以改变响应,并为不同网站页面上的一系列不同表单使用API和Lambda。如果我愿意,我可以将重定向设置为表单本身中的隐藏表单域。

代码语言:javascript
复制
    let redirectURL= 'https://amazon.com/';
    var response = {
        "statusCode": 302,
        "headers": {
            Location: redirectURL,
        }
    };
    callback(null, response);

票数 3
EN

Stack Overflow用户

发布于 2016-06-25 00:29:25

您确定API终结点返回302吗?

确保没有为您的方法定义除302之外的任何2xx或3xx响应代码。您只能有一个“成功”的响应代码映射。2xx和3xx代码都被认为是成功代码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38009315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档