![](/img/trans.png)
[英]Why the same POST request works in POSTMAN but not in browser AJAX (404 Not Found)?
[英]Simple POST request works in Postman but not in browser
我遇到了一个问题,即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在请求的资源上。
这是用于尝试从端点获取响应的浏览器代码。 我将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 接收来自任何来源的请求, 但这可能是一个主要的安全问题。
将 API 配置为仅接受来自特定来源的请求可修复此问题。
Access-Control-Allow-Origin: hostname:port
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.