只允许我的域使用 CORS?

Posted

技术标签:

【中文标题】只允许我的域使用 CORS?【英文标题】:Allowing CORS only for my domain? 【发布时间】:2018-06-26 08:36:15 【问题描述】:

我有一个AngularJs 网站,当我尝试发布数据时,当我打开我的网站而不使用www 时,我得到了

对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头

否则,我不会收到任何错误。

我试图搜索并发现我应该在我的后端实现CORS,它位于NodeJs,但是谁能告诉我我怎样才能只实现CORS Headers 这样对于www 和没有 www 都可以,但对于尝试访问我的 API 的任何其他域必须导致 预检错误

我正在尝试这样做,因为我在这里读到 which-security-risks-do-cors-imply 允许所有域会增加我不想要的网站的安全开销。

谢谢。

【问题讨论】:

这可能对***.com/a/32481816/5621827有帮助 header("Access-Control-Allow-Origin", "*.domain.com") 为什么不将任何www 请求重定向到非www?大多数人不再使用www @charlietfl 你能告诉我我该怎么做吗?? 【参考方案1】:

恐怕这不是您可以仅在客户端代码中调整的东西。为了使跨域请求正常工作,您需要设置一个 http 响应标头:它是服务于资源的服务器,谁需要更改,而不是来自 angularJs 的客户端代码.

我认为您应该更新您的问题,说明您的服务器端语言是什么以及您如何处理服务器端的 http 请求。据我所知,只需添加一个标题,如: 访问控制允许来源:http://client.domain.com 在你的回复中会成功。其中client.domain.com 是您的客户端 angularJs 应用程序的域。

【讨论】:

它在 Nodejs 中。 expressJs 我猜?

以上是关于只允许我的域使用 CORS?的主要内容,如果未能解决你的问题,请参考以下文章

如何让我的快速服务器使用 cors 将客户端重定向到不同的域?

如何使用 CORS 限制 AWS S3 访问?

CORS 不工作 ASP.Net MVC5

跨域资源共享 (CORS) 概念

如何使用 Flask CORS 将域列入白名单

如何在 Jersey 中使用 ContainerResponseFilter 允许 CORS 的多个域。?