如何使用express启用cors nodejs?

2024-03-14

总之,我正在使用一个像 api 这样的 dicom 文件查看器,称为 Cornstone,为此,我连接到 dc4chee 的 WADO 服务来获取 dicom,dcm4chee 运行端口 8080,而我在节点上的应用程序使用端口 3000,所以我试图显示浏览器的 dicom。

https://www.npmjs.com/package/cornerstone-wado-image-loader https://www.npmjs.com/package/cornerstone-wado-image-loader

这是浏览器显示的错误

XMLHttpRequest can not load http: // localhost: 8080 / wado? RequestType = WADO & studyUID = 1.2.840.113704.1.111.5 ... 26513.429 & contentType = application% 2Fdicom & transferSyntax = 1.2.840.10008.1.2. In 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http: // localhost: 3000' is therefore not allowed access.

在指定的文档中

请注意,Web 服务器必须支持跨源资源共享,否则图像将无法加载。如果您无法在从中加载 DICOM P10 实例的 Web 服务器上启用 CORS,则可以使用反向代理。这是一个基于 http 代理的简单 Node.js,它添加​​了您可能会觉得有用的 CORS 标头。

并显示此示例代码,但我使用的是express,此代码不起作用

Var http = require ('http'),
    HttpProxy = require ('http-proxy');

Var proxy = httpProxy.createProxyServer ({target: 'http: // localhost: 8042'}) .listen (8000);

Proxy.on ('proxyRes', function (proxyReq, req, res, options) {
  // add the CORS header to the response
  Res.setHeader ('Access-Control-Allow-Origin', '*');
});

Proxy.on ('error', function (e) {
  // suppress errors
});

这里也使用 npm cors 代码

Var express = require ('express')
Var cors = require ('cors')
Var app = express ()
 
App.get ('/ products /: id', cors (), function (req, res, next) {
  Res.json ({msg: 'This is CORS-enabled for a Single Route'))
})
 
App.listen (80, function () {
  Console.log ('CORS-enabled web server listening on port 80')
})

但是这样我在端口 3000 而不是 8080 上启用 cors,我需要在标头响应中激活或添加“Access-Control-Allow-Origin”的模式,而不是在标头请求中,

如何在 dcm4chee 从 NODEjs 运行的端口 8080 上添加 CORS?

update!

服务器响应如下;

响应头

Content-Type:application/dicom
Date:Sat, 01 Apr 2017 01:15:38 GMT
Expires:0
Server:Apache-Coyote/1.1
Transfer-Encoding:chunked
X-Powered-By:Servlet 2.4; JBoss-4.2.3.GA (build: SVNTag=JBoss_4_2_3_GA 
date=200807181439)/JBossWeb-2.0

请求头

Accept:*/*
Accept-Encoding:gzip, deflate, sdch, br
Accept-Language:es-ES,es;q=0.8,en-US;q=0.6,en;q=0.4
Connection:keep-alive
Host:localhost:8080
Origin:http: //localhost:3000
Referer:http: //localhost:3000/
User-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like 
Gecko) Chrome/55.0.2883.87 Safari/537.36

如何启用响应标头中的 CORS?


do

npm install cors --save

只需将这些行添加到您的请求所在的主文件中即可。

const cors = require('cors');
const express = require('express');
const app = express();
app.use(cors());
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用express启用cors nodejs? 的相关文章

随机推荐

  • 如何在 Java 中将 2010-12-15T16:26:49.841-08:00 转换为 GregorianCalendar? [复制]

    这个问题在这里已经有答案了 我有一个字符串日期 2010 12 15T16 26 49 841 08 00 我需要将其转换为Java中的GregorianCalendar 你怎么做到这一点 Jesper 的回答的解决方案 使用joda时间的
  • 如何在 Docker Python 镜像中安装 GDAL 库?

    我正在为我的 django 项目使用 python3 7 slim buster docker 映像 现在我想使用django的Geo功能 但看来我必须安装GDAL 因此 我执行 RUN apt get install gdal 并引发异常
  • JPA 是否支持映射到 sql 视图?

    我目前正在使用 Eclipselink 但我知道现在大多数 JPA 实现已经相当标准化 是否有一种将 JPA 实体映射到视图的本机方法 我不想插入 更新 但问题实际上是如何处理 Id 注释 JPA 世界中的每个实体都必须有一个 ID 字段
  • java中本地对象的内存管理

    如果我在类中有一个方法并且我在该方法中创建一个对象 那么该对象会被销毁并释放分配给它的内存吗 该方法完成后 eg public void drawFigure Paint paint new Paint paint setSomePrope
  • Vue-test-utils 包装器未定义

    我在 Jest 中有以下组件的测试套件 我已经成功地为其他几个遵循类似结构的组件编写了单元测试 import createLocalVue mount from vue test utils import Vuex from vuex im
  • python 基于部分字符串匹配合并两个 pandas 数据框

    我是 Python 新手 在连接两个 pandas 数据框时遇到很多麻烦 因为合并应该基于部分字符串匹配 进一步来说 我有一个名为的数据框df看起来像这样 writtenAt 2015 01 01T18 31 01 00 00 conten
  • Oracle sql 按当天对工作日进行排序

    我试图根据顺序对日期进行排序 周六 周日 周一 周二 周三 周四 周五 我正在尝试使用案例 select day CASE day WHEN 1 THEN 1 WHEN 2 THEN 2 WHEN 3 THEN 3 WHEN 4 THEN
  • Netsuite 脚本 beforeLoad 记录未被修改

    我试图在用户打开采购订单时修改它 这似乎是一个非常简单的例子 但似乎不起作用 在 GUI 中我没有看到 测试 备忘录 在脚本调试中 备注字段为空 由于调试 我知道脚本正在运行 Update Drop Ship PO with route I
  • Express Checkout 错误消息:“安全标头无效”

    我正在实施快速结帐在贝宝 前两步我没有问题SetExpressCheckout and GetExpressCheckout 但是当我使用DoExpressCheckout 我遇到错误 安全标头无效 API 凭证是相同的 我已经通过更改来修
  • ec2 每次启动时运行脚本

    我在这里关注了一些帖子 尝试在每次启动后 而不仅仅是第一次启动 在我的 ec2 实例上运行 python 或 shell 脚本 我已经尝试过 脚本用户 始终 到 etc cloud cloud cfg 文件 将脚本添加到 scripts p
  • 如何在纯 PHP 中执行 HTTP 重定向后获取最终 URL?

    我想做的是找出重定向后的最后 最终 URL 是什么 我不想使用 cURL 我想坚持使用纯 PHP 流包装器 现在我有一个网址 比方说http 域名 test http domain test 我使用 get headers 从该页面获取特定
  • 如何将变量传递给布局?

    我的应用程序布局有两个版本 它们仅在几行中有所不同 考虑以下示例 html head a lot of code here body some more code here if defined flag and flag true var
  • iOS 7.1:当应用程序在后台时获取核心运动数据(加速计、陀螺仪)

    我想知道当应用程序处于后台模式时如何继续接收运动传感器值 我意识到那里已经有几个帖子了 例如 我尝试过iPhone 上的 Nike GPS 如何在后台接收加速度计更新 https stackoverflow com questions 87
  • Bouncy Castle 在 CBC 模式下使用 AES 进行基于密码的加密

    我最近遇到了一段在 CBC 模式下使用 BouncyCastle 的 PBE 和 AES 的代码 PBEWithSHA1And256BitAES CBC BC public static final String ALGORITHM PBE
  • 给出很多间隔 [ai, bi],找到与最多间隔数相交的间隔

    给定很多间隔 ai bi 找到与间隔数量最多的间隔 我们能在 O nlogn 或更好的时间内做到这一点吗 我只能想到 n 2 方法 假设间隔给出为 a1 b1 an bn 制作一个长度已排序的数组2n关系被打破的地方 if ai aj 然后
  • PostgreSQL - jsonb_each

    我刚刚开始在 postgres 上使用 jsonb 并在网上很难找到示例 因为它是一个相对较新的概念 我尝试使用 jsonb each text 打印出键和值表 但在单列中获取 csv 我将下面的 json 保存为 jsonb 并用它来测试
  • ggplot 中仅一个图例的标签为斜体

    我正在尝试格式化一个侧面有两个独立图例的绘图 我有一个用于所有不同分类单元的形状图例 以及一个用于它们所属类别的颜色图例 我只想将形状图例中的分类单元名称斜体化 而不将颜色图例中的类别名称斜体化 到目前为止 我可以使用这一行将所有图例条目设
  • 如何以自定义方式从主题恢复全局存储?

    假设我在从主题获取数据后将数据存储在 Globalstore 中时正在进行一些自定义处理 即我正在根据 message 的值创建自定义键 在本地删除状态后 它会以相同的方式再次恢复 Globalstore 吗 override def pr
  • 无法在 Android Studio 中使用 compose 检查器 (Flamingo 2022.2.1)

    设备的网络正常工作 但如屏幕截图所示 我无法连接到以下 URL maven google com 导致撰写检查器无法正常工作 我尝试修改旧版本 Compose 的版本 但没有解决问题 我可以以某种方式设置 URL 或其他解决方案 以便我可以
  • 如何使用express启用cors nodejs?

    总之 我正在使用一个像 api 这样的 dicom 文件查看器 称为 Cornstone 为此 我连接到 dc4chee 的 WADO 服务来获取 dicom dcm4chee 运行端口 8080 而我在节点上的应用程序使用端口 3000