小编Mar*_*per的帖子

如何避免单页应用程序中的 CORS 预检请求?

我想构建一个单页应用程序(SPA),并在后端 API(REST)和前端资产(静态 vue.js 代码)分离期间注意到以下问题:

当从 API 后端以外的其他域提供 index.html 时,大多数 POST/PUT 请求都会触发 CORS 预检请求。

我做了一些研究,发现博客文章 [1][2] 讨论了这个问题 - 没有给出实际的解决方案。某些标头(例如,授权标头和具有application/json值的 Content-Type 标头)不允许作为 cors-safelisted-request-header。因此,POST/PUT 请求会触发 CORS 预检请求。这是不可接受的,因为它增加了大量的延迟。

问题

如果两个域都属于同一实体,是否可以避免这些预检请求?

研究

我做了一些关于如何避免前端和后端之间的 CORS 请求的研究。该解决方案需要从与 REST API 后端相同的域提供 index.html 文件(请参阅下面的示例)。我想知道不使用单独的域是否是避免 SPA 的 CORS 请求的唯一解决方案。

场景(示例)

  • 单页应用程序(SPA);前端和后端层
  • 托管在AWS云中
  • 第 1 层:具有 S3 存储桶源的 CloudFront CDN - 在static.example.com上提供静态资产(Vue.js 前端)
  • 第 2 层:具有 ECS 集成的负载均衡器,运行 node.js 容器来托管example.com上的 (REST) 后端
  • 第 1 层和第 2 层之间的通信使用 HTTPS 协议和 REST 范例。
  • index.html 由第 2 层提供服务,客户使用example.com …

architecture amazon-web-services cors single-page-application

8
推荐指数
2
解决办法
2099
查看次数

如何确定 Node.js 发送 HTTP 响应正文所花费的时间?

我当前的设置涉及使用 Express.js 的 Node.js Web 应用程序。
我正在使用 DataDog 的 dd-tracer 来测量 Node.js 花费在特定方法调用上的时间,作为我的 APM 解决方案的一部分。

我想知道是否可以测量传入 HTTP 请求忙于将数据作为 HTTP 响应正文发送回客户端的时间部分。

尝试进行此类检测时是否存在任何陷阱或不准确之处?
有谁知道为什么默认情况下 APM 客户端库不测量这一点?

instrumentation apm node.js express datadog

7
推荐指数
1
解决办法
851
查看次数