首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用node.js Lambda函数在AWS配置上使用Axios发布数据时出现CORS错误

使用node.js Lambda函数在AWS配置上使用Axios发布数据时出现CORS错误
EN

Stack Overflow用户
提问于 2022-10-20 15:52:30
回答 1查看 82关注 0票数 0

我将数据发布到一个带有axios的DynamoDB表中。API是通过使用API网关和AWS上的Lambda的无服务器配置来设置的。

当请求通过并在数据库中看到添加的项时,我仍然会得到一个CORS错误https://i.stack.imgur.com/m7yMG.jpg

这是axios方法:

代码语言:javascript
运行
复制
import axios from "axios";

export const sendItemToDB = async (_data) => {
    if (!_data) { return };
    try {
        const res = await axios({
            method: "POST",
            url: process.env.REACT_APP_QUERY_API,
            data: _data,
            headers: {
                "Content-Type": "text/plain"
            },
        });
        console.log("data returned from api", res);
    } catch (error) {
        console.log("Error sending File to db: ");
        console.log(error);
    }
};

以及Lambda上的API方法:

代码语言:javascript
运行
复制
const createRecord = async (event) => {
    const response = { statusCode: 200 };

    try {
        const body = JSON.parse(event.body);
        const params = {
            TableName: process.env.DYNAMODB_TABLE_NAME,
            Item: marshall(body || {}),
        };
        const createResult = await db.send(new PutItemCommand(params));
        response.body = JSON.stringify({
            message: "Successfully created record.",
            createResult,
        });
    } catch (e) {
        console.error(e);
        response.statusCode = 500;
        response.body = JSON.stringify({
            message: "Failed to create record.",
            errorMsg: e.message,
            errorStack: e.stack,
        });
    }

    return response;
};

我在本教程的基础上建立了这个配置:https://github.com/jacksonyuan-yt/dynamodb-crud-api-gateway

EN

回答 1

Stack Overflow用户

发布于 2022-10-21 10:25:22

我在amazon文档之后解决了这个问题,并重新配置了无服务器部署yml。

关于api网关和lambda代理集成这里的无服务器文档

将丢失的头添加到所有lambda函数中是必不可少的。

代码语言:javascript
运行
复制
const response = {
        statusCode: 200,
        headers: {
            "Access-Control-Allow-Headers" : "Content-Type",
            "Access-Control-Allow-Origin": "*",
            "Access-Control-Allow-Methods": "OPTIONS,POST,GET"
        },
    };

还测试选项是否适用于飞行前:https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-test-cors.html

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

https://stackoverflow.com/questions/74142821

复制
相关文章

相似问题

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