Je dois configurer CORS pour qu'il soit activé sur les scripts servis par express. Comment puis-je définir les en-têtes dans ces réponses renvoyées pour public / assets?
javascript
node.js
express
Dr Knowitall
la source
la source
res
object. Lorsque j'essaie de voir ce contenu, je ne suis pas défini en utilisantres.headers
;res.write('content')
?res.set
n'a pas fonctionné pour moi, mais lecors
middleware a parfaitement fonctionné.C'est tellement ennuyeux.
D'accord si quelqu'un a encore des problèmes ou ne veut tout simplement pas ajouter une autre bibliothèque. Tout ce que vous avez à faire est de placer cette ligne de code intermédiaire avant vos itinéraires.
la source
Vous pouvez le faire en utilisant cors. cors s'occupera de votre réponse CORS
la source
Réponse courte:
res.setHeaders
- appelle la méthode native Node.jsres.set
- définit les en-têtesres.headers
- un alias pour res.setla source
Il existe au moins un middleware sur npm pour gérer CORS dans Express: cors .
la source
Vous pouvez également ajouter un middleware pour ajouter des en-têtes CORS, quelque chose comme ceci fonctionnerait:
la source
la source
La réponse de @ klode est juste.
Cependant, vous êtes censé définir un autre en-tête de réponse pour rendre votre en-tête accessible aux autres.
Exemple:
Tout d'abord, vous ajoutez 'page-size' dans l'en-tête de la réponse
Ensuite, tout ce que vous avez à faire est d'exposer votre en-tête
la source
javascript res.set("...","..."); res.set("...","....");
Maintenant, comment exposez-vous ces 2 en-têtes?javascript Access-Control-Expose-Headers: * // or Access-Control-Expose-Headers: <header-name>, <header-name>, ...