首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >API网关CORS:没有'Access-Control-Allow-Origin‘头部

API网关CORS:没有'Access-Control-Allow-Origin‘头部
EN

Stack Overflow用户
提问于 2016-02-04 08:51:23
回答 24查看 141K关注 0票数 135

虽然已经通过API Gateway设置了CORS,并且设置了Access-Control-Allow-Origin头部,但在Chrome内部尝试从AJAX调用接口时,仍然收到以下错误:

XMLHttpRequest无法加载http://XXXXX.execute-api.us-west-2.amazonaws.com/beta/YYYYY。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此不允许访问源'null‘。响应的HTTP状态代码为403。

我尝试通过Postman获取URL,结果显示上面的报头已成功传递:

从OPTIONS reponse:

如何在不恢复到JSON-P的情况下从浏览器调用API?

EN

回答 24

Stack Overflow用户

发布于 2017-03-26 20:56:51

我也有同样的问题。我已经用了10个小时来找出答案。

https://serverless.com/framework/docs/providers/aws/events/apigateway/

// handler.js

'use strict';

module.exports.hello = function(event, context, callback) {

const response = {
  statusCode: 200,
  headers: {
    "Access-Control-Allow-Origin" : "*", // Required for CORS support to work
    "Access-Control-Allow-Credentials" : true // Required for cookies, authorization headers with HTTPS 
  },
  body: JSON.stringify({ "message": "Hello World!" })
};

callback(null, response);
};
票数 143
EN

Stack Overflow用户

发布于 2018-02-19 14:46:42

如果还有其他人遇到这个问题--我能够在我的应用程序中找到根本原因。

如果您正在使用自定义Authorizers运行API-Gateway - API-Gateway将在它实际到达您的服务器之前发送回401或403。从自定义授权器返回4xx时,默认没有为CORS配置- API-Gateway。

另外-如果你碰巧从通过API Gateway运行的请求中得到01的状态码,这可能是你的问题。

要修复-在API网关配置中-转到[网关响应],展开[默认4xx],并在其中添加CORS配置头。即

Access-Control-Allow-Origin: '*'

确保重新部署您的网关-瞧!

票数 128
EN

Stack Overflow用户

发布于 2018-12-04 02:22:48

如果你已经尝试了所有关于这个问题的方法都没有用,那么你就会落得和我一样的下场。事实证明,亚马逊现有的CORS设置方向工作得很好...只要确保你记得重新部署!CORS编辑向导,即使有所有漂亮的绿色复选标记,也不会对API进行实时更新。这可能很明显,但它把我难住了半天。

票数 32
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35190615

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档