node.js - CORS 将 HTTP 请求锁定到在 Firebase 上提供的 Angular 上的 Elasticsearch 服务器

标签 node.js angular elasticsearch cors xmlhttprequest

这个问题在这里已经有了答案:





How does Access-Control-Allow-Origin header work?

(18 个回答)



Why doesn't adding CORS headers to an OPTIONS route allow browsers to access my API?

(36 个回答)



firebase hosting blocking script due to CORS issue

(6 个回答)


3年前关闭。




首先,我确定这是一个重复的问题,但我离网络技术有点远,并且无法理解 CORS 到底是什么,为什么它会阻止一个简单的 HTTP 请求以及我该如何绕过它。

我正在尝试创建一个 Angular 5 + Node.js 网络应用程序,托管在 Firebase Hosting 上,并在 Google Cloud Platform 上有一个 Elasticsearch 实例。我需要做的就是从这个 Web 应用程序向 ES 实例发送 2 个非常基本的 HTTP 请求。我已经从移动应用程序和 Postman 应用程序发送这些请求,没有问题。但是网络应用程序日志 Preflight response is not successful错误。我用谷歌搜索了这个错误,发现它是由 CORS 抛出的。正如我所说,我不知道 CORS 到底是什么以及如何绕过它。请提供任何帮助(对非网络开发人员的简单帮助)。谢谢你。

最佳答案

简而言之,CORS(跨域资源共享)是浏览器默认强制执行的一种安全机制,它指定您的应用程序可以使用(发出请求)哪些资源(在哪些服务器上)。这是对 CORS 的一个很好的解释 - https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS .

因此,您必须在服务器上将应用程序的域设置为允许进行调用的域之一。如果这样做,预检请求将返回一个 Access-Control-Allow-Origin header 集,并且浏览器允许发送实际请求。

您可以在此处查看如何在 Firebase 中执行此操作 - https://groups.google.com/forum/#!msg/firebase-talk/oSPWMS7MSNA/RnvU6aqtFwAJ

关于node.js - CORS 将 HTTP 请求锁定到在 Firebase 上提供的 Angular 上的 Elasticsearch 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53636414/

相关文章:

javascript - 如何自定义Intl.DateTimeFormat日期?

curl - 我需要删除curl中的cluster.routing.allocation.awareness.force

c# - NEST ElasticSearch for 你的意思是功能

angular - 'ng' 不被识别为内部或外部命令,

firebase - 如何将 Firestore 日期对象映射到 elasticsearch 中的日期

javascript - 在父类构造函数调用的方法中访问子类字段

javascript - visitFunction 错误是什么意思?

javascript - Node.js 中的变量作用域

javascript - Sequelize 为 LIKE 添加额外的引号

angular - 如何将段设置为 Angular 6 路线?