Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 简单的POST请求在Postman中有效,但在浏览器中无效_Javascript_Ajax - Fatal编程技术网

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

Javascript 简单的POST请求在Postman中有效,但在浏览器中无效,javascript,ajax,Javascript,Ajax,我遇到一个问题,即在Postman中运行时,POST端点返回响应,但在浏览器中运行时没有返回响应 我已经通过无服务器在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 fun

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

我已经通过无服务器在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
错误:

访问位于的XMLHttpRequest '' 源“”已被CORS阻止 策略:服务器上不存在“访问控制允许来源”标头 请求的资源

以下是用于尝试从端点获取响应的浏览器代码。我正在为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

未为跨源请求配置API。您需要配置服务器以允许这些请求

Access-Control-Allow-Origin: *
这将允许API接收来自任何来源的请求

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

Access-Control-Allow-Origin: hostname:port

那么为什么它在邮递员中起作用呢?而且我在无服务器中启用了cors,这样做不好吗?我将lambda用于解析程序,因此没有服务器,但拒绝来自API,而不是客户端-否?否。浏览器正在阻止请求,因为出于安全原因,它只允许来自同一来源的请求。确定,邮递员绕开它是因为它没有起源?@redhouse87到目前为止你对它有了基本的了解吗?我也得出了和你一样的结论,并且对同样的问题感到好奇,那就是邮递员的请求是否能够绕过这个问题。那么为什么它在邮递员中起作用呢?而且我在无服务器中启用了cors,这样做不好吗?我将lambda用于解析程序,因此没有服务器,但拒绝来自API,而不是客户端-否?否。浏览器正在阻止请求,因为出于安全原因,它只允许来自同一来源的请求。确定,邮递员绕开它是因为它没有起源?@redhouse87到目前为止你对它有了基本的了解吗?我也得出了和你一样的结论,并对同样的问题感到好奇,那就是邮递员的请求是否能绕过这个问题。