Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.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
Amazon web services 通过lambda函数的API网关启用CORS时出现问题_Amazon Web Services_Cors_Aws Lambda_Aws Api Gateway - Fatal编程技术网

Amazon web services 通过lambda函数的API网关启用CORS时出现问题

Amazon web services 通过lambda函数的API网关启用CORS时出现问题,amazon-web-services,cors,aws-lambda,aws-api-gateway,Amazon Web Services,Cors,Aws Lambda,Aws Api Gateway,诚然,我以前从未使用过CORS,也不完全确定我在做什么 我正在尝试从网站调用Lambda函数,而不必通过JSONP处理跨源请求。我尝试了通过API网关启用CORS的教程,但它似乎不起作用。我创建了一个GET方法,通过Postman测试它是否有效,然后使用action下拉菜单中的enablecors选项。我使用AJAX发送请求,如下所示 $.ajax({ url: myEndpoint, type: "GET", crossDomain: true,

诚然,我以前从未使用过CORS,也不完全确定我在做什么

我正在尝试从网站调用Lambda函数,而不必通过JSONP处理跨源请求。我尝试了通过API网关启用CORS的教程,但它似乎不起作用。我创建了一个GET方法,通过Postman测试它是否有效,然后使用action下拉菜单中的enablecors选项。我使用AJAX发送请求,如下所示

$.ajax({
        url: myEndpoint,
        type: "GET",
        crossDomain: true,
        dataType: "json",
    })
作为回应,我得到了错误

请求的资源上不存在“Access Control Allow Origin”标头。因此,不允许访问源“null”


有人知道如何纠正此问题吗?

如果您使用的是代理,那么您的Lambda集成响应必须具有Access Control Allow Origin标头

在飞行前还是在实际请求期间?但是,您读到了吗?您必须依靠后端返回Access Control Allow Origin标头,因为集成响应被禁用用于代理集成。该错误被记录到chrome上的控制台中。我如何判断它是在飞行前还是在实际请求期间?文档中的这一行让我有点困惑,因为我看到的另一个来源有一些关于不需要编辑lambda服务的评论,尽管我想这可能是错误的。那么,我是否只需要将CORS头添加到lambda函数中的响应中?如果有帮助,我的lambda函数正在接收和处理请求,只是响应永远不会返回给用户。忽略我前面的两条注释,向lambda响应添加一个访问控制允许来源头修复了它。谢谢你的帮助!对不起,我不在。可以检测飞行前,因为这是一个选项请求。我猜网关正确地处理了所有这些请求,但依赖后端为实际请求添加CORS头。