ok si jolie bizarre que j'ai le fichier server.js suivant avec le code suivant:nœud ne peut pas lire c'est en-tête Access-contrôle permet origine
app.all('/*', function (req, res, next) {
// CORS headers
res.header("Access-Control-Allow-Origin", "*"); // restrict it to the required domain
res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS');
// Set custom headers for CORS
res.header('Access-Control-Allow-Headers', 'Content-type,Accept,X-Access-Token,X-Key');
if (res.method === 'OPTIONS') {
res.header("Access-Control-Allow-Origin", "*"); // restrict it to the required domain
res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS');
// Set custom headers for CORS
res.header('Access-Control-Allow-Headers', 'Content-type,Accept,X-Access-Token,X-Key');
}
next();
});
Maintenant, le domaine qui appelle mon système est api.example.com
Je l'appelle d'un autre site appelé angular.example.com
Quand je fais ce que je reçois le message d'erreur suivant dans la console:
XMLHttpRequest cannot load http://api.example.com/api/componentsByModule/125 No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://angular.example.com' is therefore not allowed access. The response had HTTP status code 503.
Mais comme vous pouvez le voir dans mon code ci-dessus, il doit définir les en-têtes sur toutes les demandes
Donc ma question est ce que je fais mal?
Les deux sites que vous utilisez sont-ils vos propres sites? Le paramètre Access-Allow-Control-Origin est géré par le propriétaire du site sur son serveur. Je n'ai pas encore trouvé le moyen de l'autoriser à partir de mon application depuis mon domaine à accéder au domaine d'un autre utilisateur. Fait intéressant, les appels cURL fonctionnent bien, et HURL.it est idéal pour passer en revue les en-têtes de réponse d'un appel à une URL donnée. Mais, si vous ne possédez pas ce domaine, vous tentez d'accéder ou de contrôler les fichiers de configuration du serveur, vous ne pouvez pas injecter l'accès aux scripts inter-sites (XSS/CORS) ici: (https: // www .hurl.it /) –
@MikeHorstmann mes deux sites sont gérés par moi mais j'ai sous-domaines serveral qui pointe vers la même adresse IP –
'app.use' est la façon la plus idiomatique d'ajouter middleware dans express au lieu de plus verbeux' app.all ('/ *' '. –