【问题标题】:When I fetch using GET method I receive an error 502当我使用 GET 方法获取时,我收到错误 502
【发布时间】:2022-02-01 21:59:59
【问题描述】:

当我尝试使用 GET 获取时,我收到错误 502,但当我使用 POST 获取时,我会收到响应。

拉姆达:

const headers = {'Content-Type':'application/json'}


exports.handler = async function(event) {
    return {
      statusCode: 200,
      headers: {
        headers
      },
      body: JSON.stringify({"ok":"ok"})
    }
};

获取:

fetch("https://n3bvznv385.execute-api.us-east-2.amazonaws.com/dev/juegos", {
            method: 'GET',
            headers: {
                'Content-Type': 'application/json',
                'Accept': 'application/json',
                'authorizationToken' : '123',
            }
        }).then(response => response.json())
            .catch(error => console.error('Error:', error))
            .then(response => console.log(JSON.parse(response.body)));

Error using GET Success using POST

【问题讨论】:

  • 500 错误意味着服务器端的 get 请求出现问题。检查您的服务器日志或在此处发布。
  • 还要检查 GETPOST 操作是否在 APIGW 中配置正确。
  • 'Content-Type': 'application/json', 在那里做什么?您正在发出 GET 请求。您不能拥有 JSON 正文(或任何正文)
  • @Quentin 谢谢你,我会记住的,我已经删除了它,但没有任何反应。
  • @DavidOrtiz 您是否在 API Gateway 中配置了 Lambda 代理集成?

标签: javascript node.js amazon-web-services aws-lambda


【解决方案1】:

当您使用代理集成时,来自您的 Lambda 的 API Gateway expects the following response format

{
    "isBase64Encoded": true|false,
    "statusCode": httpStatusCode,
    "headers": { "headerName": "headerValue", ... },
    "multiValueHeaders": { "headerName": ["headerValue", "headerValue2", ...], ... },
    "body": "..."
}

但是,当您的代码解析为以下内容时,您将嵌套对象作为标题传递:

headers: { {'Content-Type':'application/json'} }.

尝试包含类似这样的可能标题:

exports.handler = async function(event) {
    return {
      statusCode: 200,
      headers: headers,
      body: JSON.stringify({"ok":"ok"})
    }
};

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-27
    • 2021-06-23
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 2021-02-01
    • 2011-11-09
    相关资源
    最近更新 更多