Comment faire pour activer la scro nodejs avec express?
En résumé, je suis en utilisant une visionneuse comme l'api de fichiers dicom appelé pierre angulaire, pour ce me connecter à la WADO service de dc4chee pour obtenir la dicom, dcm4chee exécute le port 8080, et ma demande sur le nœud utilise le port 3000, donc je suis en train de démontrer que Le navigateur de la dicom.
https://www.npmjs.com/package/cornerstone-wado-image-loader
C'est l'erreur affichée par le navigateur
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.
Dans la documentation spécifiée
Noter que le serveur web doit prendre en charge la Croix de la source de partage de ressources ou l'image ne parvient pas à charger. Si vous ne parvenez pas à obtenir de la SCRO activé sur le serveur web que vous êtes le chargement DICOM P10 cas, vous pouvez utiliser un reverse proxy. Voici un simple Node.js basé sur http-proxy qui ajoute de la SCRO en-têtes que vous pourriez trouver utiles.
Et de montrer cet exemple de code, mais je suis en utilisant exprimer et ce code ne fonctionne pas
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
});
Également utiliser npm de la scro ici le code
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')
})
Mais avec ce que je activer la scro sur le port 3000 et pas le 8080, j'ai besoin de la mode pour activer ou ajouter " Access-Control-Allow-Origin dans les en-têtes de réponse et pas dans l'en-tête de demande,
Comment puis-je faire pour ajouter de la SCRO sur le port 8080, où dcm4chee s'exécute à partir de NODEjs?
désolé pour mon anglais
mise à jour!
Le serveur répond avec le suivant;
RESPONDE EN-TÊTE
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
EN-TÊTE DE DEMANDE
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
COMMENT FAIRE POUR ACTIVER LA SCRO EN-TÊTE DE RÉPONSE??
Var
ne peuvent être capitalisés, et vous êtes en capitalisant les noms de variables (qui sont sensibles à la casse) comme l'utilisation de App
mais vous avez défini comme app
.Double Possible de Pas de "Access-Control-Allow-Origin' - Node / Apache Port Problème
Double Possible de Comment permettre à la SCRO?
OriginalL'auteur M. Node | 2017-03-31
Vous devez vous connecter pour publier un commentaire.
ne
et simplement ajouter ces lignes dans votre fichier principal où en est votre demande.
OriginalL'auteur Yatender Singh
Pour activer la scro vous pouvez faire ceci:
Rappelez-vous que la scro sont middleware, si vous souhaitez avoir des
app.use
avant que vos demandes entrantes passera par la scro avant qu'ils frappent vos itinéraires.Vous pouvez modifier les ports selon celui que vous souhaitez utiliser. Je suis sûr que vous pouvez également remplacer le
||
avec&&
à écouter sur plusieurs ports et de l'ensemble de la scro sur ceux-ci.En raw nœud, je crois que vous devez utiliser le writeHead, mais je ne suis pas sûr que le raw nœud de mise en œuvre.
Vous avez une erreur dans votre code: ce
OriginalL'auteur JonathanMitchell
L'erreur affichée par le navigateur, le serveur localhost:8080 a rejeté une requête de localhost:3000, Il semble que la scro n'a pas été bien établie sur le serveur localhost:8080.
L'en-tête de réponse devriez avoir quelque chose comme ceci:
Essayez d'ajouter de la scro-tête dans votre 8080 serveur.
Il n'y a pas besoin de config de la scro sur le port 3000, la page est servi sur 3000. La situation ici est un navigateur ouvert une page sur 3000, puis demande une api servi sur 8080. Alors, serveur 8080 besoin de le configurer pour permettre la requête d'origine.
Pourriez-vous recommander une api pour qui? merci
utilisez simplement
app.use(cors());
sur le serveur 8080.C'est ce qui est ce que je ne comprends pas, désolé pour l'ignorance, mais depuis que je travaille avec NODEJS et ma demande est dans le port 3000, et le DCM4CHEE EST DANS le PORT 8080, je ne peux pas converger CORS de ma demande de le port 3000 , Comment dois-je faire pour le port 3000 application configurer le port 8080 de la SCRO QUI EST UTILISÉ PAR DCM4CHEE QUI EST LE DICOM FOURNISSEUR? Je ne sais pas si j'explique bien, désolé = (sonde avec app.utilisation (scro ({source: localhost: 8080';}));) app.js de mon application avec le port 3000
OriginalL'auteur cxxsn
Ajoutant CORS(Cross-Origin-le Partage de Ressources) à votre nœud, express app est très facile...
Vous devez installer de la scro bibliothèque via mnp d'abord, à l'aide de la commande ci-dessous:
et si vous en avez besoin à l'échelle mondiale, il suffit d'ajouter
-g
drapeau...Puis dans votre express app, ce faire:
Aussi ce sont d'autres exemples de la scro à partir de leur doc:
La configuration de la SCRO de manière Asynchrone:
OriginalL'auteur Alireza