gpt4 book ai didi

javascript - 简单的 POST 请求在 Postman 中有效,但在浏览器中无效

转载 作者:行者123 更新时间:2023-12-02 02:55:09 25 4
gpt4 key购买 nike

我遇到了一个问题,即 POST 端点在 Postman 中运行时返回响应,但在浏览器中运行时却没有。

我已经通过无服务器在 AWS 上设置了一个 API 端点。这是它的 .yml 配置:

service: tableau-export-rest

provider:
name: aws
runtime: nodejs10.x
region: eu-west-1
stage: ${opt:stage, 'dev'}
timeout: 900
memorySize: 3008

functions:
storeExportFiters:
handler: index.storeExportFiters
events:
- http:
path: /store-export-filters
method: post
cors: true

端点解析器 storeExportFiters(这是一个 lambda)现在只返回一条成功消息:

module.exports = (event, ctx, cb) => {
return cb(null, {
statusCode: 200,
body: JSON.stringify({
worked: true
})
});
}

当我将其部署到 AWS 并尝试通过 POST 请求访问 Postman 的端点时,没有正文或任何内容,它向我发送了正常的响应。当我尝试在浏览器中执行此操作时,出现了 cors 错误:

Access to XMLHttpRequest at 'https://myapi.com/store-export-filters' from origin 'http://localhost:9003' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

这是用于尝试从端点获取响应的浏览器代码。我正在使用 Axios对于 http 请求:

  axios.post('https://myapi.com/store-export-filters')
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});

我不明白为什么我会在这里收到 CORS 错误,尤其是当它在我机器上的 Postman 中运行时。

最佳答案

您的 API 未针对跨源请求进行配置。您需要配置您的服务器以允许这些请求。

Access-Control-Allow-Origin: *

这将允许您的 API 接收来自任何来源的请求,however can be a major security issue.

将您的 API 配置为只接受来自特定来源的请求可以解决此问题。

Access-Control-Allow-Origin: hostname:port

关于javascript - 简单的 POST 请求在 Postman 中有效,但在浏览器中无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61272586/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com