reactjs - 无服务器 lambda 函数无法与 CORS 反应
问题描述
大家好,我已经使用 API 网关编写了一个无服务器 lambda API,当我使用 POSTMAN 时,该 API 可以正常工作。api 使用 PATCH 方法更新 dynamoDB 中的记录。然后我在我的 React 应用程序中实现了 axios 来调用我的 API。由于 CORS 正常,调用失败,我转到 API 网关并通过按下方法 PATCH 进入方法响应和集成方法为该端点启用了 CORS 添加了所有响应标头
Access-Control-Allow-Headers
Access-Control-Allow-Origin
Access-Control-Allow-Credentials
Access-Control-Allow-Methods
部署了API并且不起作用。然后我尝试在我的 serverless.yml 中添加cors: true
和部署这也不起作用。
这是我的鳕鱼:
无服务器.yml:
setBookVotes:
handler: src/handlers/setBookVotes.handler
events:
- http:
method: PATCH
path: /book/{id}/vote
反应:
export const updateVoteCount = (id, vote) => {
return axios.patch(`book/${id}`, {
vote: vote,
});
};
拉姆达:
import AWS from "aws-sdk";
import middy from "@middy/core";
import httpJsonBodyParser from "@middy/http-json-body-parser";
import httpEventNormalizer from "@middy/http-event-normalizer";
import httpErrorHandler from "@middy/http-event-normalizer";
const dynamodb = new AWS.DynamoDB.DocumentClient();
async function setBookVotes(event, context) {
const { id } = event.pathParameters;
const { vote } = event.body;
const params = {
TableName: process.env.BOOK_TABLE_NAME,
Key: { id },
UpdateExpression: "set vote = vote + :vote",
ExpressionAttributeValues: {
":vote": vote,
},
ReturnValues: "ALL_NEW",
};
let updatedVotes;
try {
const result = await dynamodb.update(params).promise();
updatedVotes = result.Attributes;
} catch (error) {
console.error(error);
throw new createError.InternalServerError(error);
}
return {
statusCode: 200,
body: JSON.stringify(updatedVotes),
};
}
export const handler = middy(setBookVotes)
.use(httpJsonBodyParser())
.use(httpEventNormalizer())
.use(httpErrorHandler());
解决方案
推荐阅读
- c# - 过程或函数需要参数,该参数未提供但已提供参数
- sql - 从每日表构建每月聚合
- python - 在 python 中从 AWS 检索快照时间戳和 ID 的最简单方法?
- wordpress - 将子页面分配给 WordPress 中不存在的父页面
- python - Discord Bot Python 删除作者的消息
- vba - 作用于 Microsoft Word 中的多个 Selection.Range 对象
- php - php 数据未处理,有人可以查看我的代码吗?
- javascript - 如何循环遍历具有对象的 React App 中的 javascript 数组并获取具有特定值的属性的计数
- javascript - AngularJS - JQuery UI 是否与内置的 JQLite 一起使用
- bash - 计算bash中带有许多小数的2个数字之间的百分比增加/减少