2017-04-26 4 views
1

J'ai un serveur Web qui exécute le serveur de noeud sur un serveur. Le serveur de noeud défini l'en-tête de réponse « de contrôle d'accès » à un site Web spécifique pour permettre que ce site accéder aux ressources desservies par mon serveur de noeud:L'en-tête d'origine CORS est incomplet dans Internet Explorer 10 par rapport à Chrome et FireFox

header["Access-Control-Allow-Origin"] = "https://www.mywebsite.com"; 

En mywebsite.com lorsque les appels sont faits pour obtenir des ressources à partir du serveur de noeud, la requête fonctionne correctement puisqu'elle provient du site Web autorisé. J'ai testé cela sur Chrome et FireFox. Quand j'ai essayé la même chose en utilisant IE10, les ressources n'étaient pas bien servies.

En examinant la demande d'en-tête et la réponse pour IE 10, j'ai remarqué que l''origine' n'était pas remplie correctement alors qu'elle était remplie correctement avec Firefox et Chrome.

Voici l'en-tête Chrome: Chrome header values

Alors tête IE 10 était: Internet Explorer header values for same get request

Sur IE 10, l'origine est rempli de 'blob: //' Alors que sur Chrome et Firefox le le domaine du site web d'origine est listé correctement permettant au CORS de fonctionner correctement.

Les ressources servies par le serveur de noeud sont des mbtiles avec .pbf qui sont des flux binaires.

Une idée pourquoi IE10 semble mettre une origine incorrecte dans la demande d'en-tête? et peut-être un travail ou une solution pour cela?

Merci

Répondre

0

Je ne sais pas si cela va résoudre votre problème, mais je n'ai jamais eu un problème avec cette méthode:

app.use((req, res, next) => { 
    res.header('Access-Control-Allow-Origin', 'http://www.website.com'); 
    res.header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS'); 
    res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept, Authorization, Access-Control-Allow-Credentials'); 
    res.header('Access-Control-Allow-Credentials', 'true'); 
    next(); 
}); 
+0

Merci @Clayton. J'ai juste essayé et je vois les entrées supplémentaires d'en-tête dans mon en-tête de demande mais le problème persiste toujours. Je vois toujours dans l'en-tête de la requête l'origine incorrecte: Origine: blob: // Cela bloque fondamentalement la demande de réussite ias l'origine renvoyée par IE10 ne correspond pas à ce que le serveur permet d'origine (www.mywebsite.com) – Noury