0

我希望强制要求来自process.env.URL我的 Netlify 站点中所需的来源。但目前我可以同时cURL向 Postman 提出请求,并使用 statusCode 200 获取响应数据。我错过了什么吗?

exports.handler = async (event, context, callback) => {
  try {
    let id = event.rawUrl.split("/").pop();
    let response;
    switch (event.httpMethod) {
      case "GET":
        response = await prisma.like.count({ where: { postId: parseInt(id) } });
        break;

      case "POST":
        response = await prisma.like.create({
          data: { postId: parseInt(id) },
        });
        break;

      case "DELETE":
        response = await prisma.like.delete({
          where: {
            id: parseInt(id),
          },
        });
        break;
    }

    callback(null, {
      statusCode: 200,
      headers: {
        "Access-Control-Allow-Origin": process.env.URL,
        "Access-Control-Allow-Headers":
          "Origin, X-Requested-With, Content-Type, Accept",
        "Access-Control-Allow-Methods": "*",
        "Content-Type": "application/json",
      },
      body: JSON.stringify(response),
    });
    return;
  } catch (e) {
    console.error(e);
    return { statusCode: 500 };
  }
};
4

1 回答 1

0

CORS 是浏览器功能,即浏览器服从设置。curl 不关心 CORS 并忽略它。

于 2021-10-15T15:13:46.190 回答