Javascript 使用来自本地主机的AWS Lambda REST URL

Javascript 使用来自本地主机的AWS Lambda REST URL,javascript,rest,aws-lambda,Javascript,Rest,Aws Lambda,我只使用AWS Lambda几个星期,我正在尝试了解更多关于它们的信息,特别是如何实现我在网页上编写的Lambda 我有一个项目,我正在我的本地机器上工作,这只是一个网站,还有一些带有Axios的JavaScript。当我在输出的最后使用Serverless将代码部署到AWS Lambda时,我会得到一个url,我们将其称为the_url。当我把这个页面复制粘贴到我的浏览器中时,我会看到一个网页,上面有我期望的响应 但在我的网站上,当我按下一个按钮时,就会调用这个脚本 axios .get("T

我只使用AWS Lambda几个星期,我正在尝试了解更多关于它们的信息,特别是如何实现我在网页上编写的Lambda

我有一个项目,我正在我的本地机器上工作,这只是一个网站,还有一些带有Axios的JavaScript。当我在输出的最后使用Serverless将代码部署到AWS Lambda时,我会得到一个url,我们将其称为
the_url
。当我把这个页面复制粘贴到我的浏览器中时,我会看到一个网页,上面有我期望的响应

但在我的网站上,当我按下一个按钮时,就会调用这个脚本

axios
.get("THE_URL")
.then(data => console.log(data))
.catch(err => console.log(err));
这给了我一个错误
从源“null”访问“the_URL”处的XMLHttpRequest已被CORS策略阻止:请求的资源上不存在“Access Control Allow origin”头。
我已查找过,这似乎相当常见。我已经研究并研究了网上可能存在的解决方案,这些解决方案导致我以头的形式传入,并标记请求,使其看起来像这样

axios
    .get("THE_URL",
       {headers: {
          "Access-Control-Allow-Origin": "*"
       },
        withCredentials: true
       }
     )
但是有了这个,,然后我得到一个错误,看起来是这样的
从源“null”访问“THE_URL”处的XMLHttpRequest已被CORS策略阻止:对飞行前请求的响应未通过访问控制检查:请求的资源上不存在“Access control Allow origin”头。
我无法找到任何解决方案在线 的所以我想我会在这里问一下,看看你们中是否有人遇到过这样的错误


谢谢你的阅读

CORS头应该在服务器中,而不是客户端中。服务器控制哪些客户端域可以访问它。通过添加“*”可以允许任何站点从您的服务器请求资源,包括localhost(假设您的lambda可以公开访问)

更新lambda以返回
访问控制允许原点:
标题


CORS头应该在您的服务器中,而不是客户端。服务器控制哪些客户端域可以访问它。通过添加“*”可以允许任何站点从您的服务器请求资源,包括localhost(假设您的lambda可以公开访问)

更新lambda以返回
访问控制允许原点:
标题


“我已经研究并研究了在线上可能存在的解决方案,这些解决方案导致我以标题的形式传递”
withCredentials
是另一种经常被误用的配置。它允许将cookie添加到请求中,前提是您的客户端(浏览器)已经为第三方域设置了cookie。API服务不倾向于使用身份验证cookie,因此不太可能需要它。“我已经研究并研究了网上可能存在的解决方案,这些解决方案导致我以头的形式传入”
with credentials
是另一种经常被误用的配置。它允许将cookie添加到请求中,前提是您的客户端(浏览器)已经为第三方域设置了cookie。API服务不倾向于使用身份验证cookies,因此不太可能需要它。非常感谢Avner,这帮助我实现了它!希望你有一个伟大的一天。不客气,很高兴能帮助你!Avner,虽然这对GET方法有效,但我正在研究POST方法失败。在花了相当长的时间查看chrome中的开发者标签后,我发现在GET中请求的内容类型是
application/json
,而在post中请求的内容类型是
application/json:charset=utf-8
。我无法删除内容类型上的此标志,出于某种原因,我觉得这似乎是导致
访问控制允许源代码:
标题失败的原因。您认为这是原因吗?听起来您缺少
访问控制允许方法
标题需要允许选项,GET,POSTHey Avner,谢谢您的回复。我尝试了这个,但没有成功,你可以在这个链接上看到更多关于这个问题的细节:非常感谢阿夫纳,这帮助我让它工作!希望你有一个伟大的一天。不客气,很高兴能帮助你!Avner,虽然这对GET方法有效,但我正在研究POST方法失败。在花了相当长的时间查看chrome中的开发者标签后,我发现在GET中请求的内容类型是
application/json
,而在post中请求的内容类型是
application/json:charset=utf-8
。我无法删除内容类型上的此标志,出于某种原因,我觉得这似乎是导致
访问控制允许源代码:
标题失败的原因。您认为这是原因吗?听起来您缺少
访问控制允许方法
标题需要允许选项,GET,POSTHey Avner,谢谢您的回复。我尝试了此方法,但无效,您可以在此链接查看有关此问题的更多详细信息: