web-dev-qa-db-fra.com

Partage de ressources d'origine croisée sur les pages GitHub

Existe-t-il un moyen d'activer le partage de ressources d'origine croisée (CORS) pour une page statique hébergée sur Pages GitHub pour autoriser les demandes d'origine croisée en Javascript?

Par exemple, pouvons-nous demander à GH Pages d'ajouter d'une manière ou d'une autre ces en-têtes de réponse HTTP:

Access-Control-Allow-Origin:*  
Access-Control-Allow-Methods:GET,POST
Access-Control-Max-Age: 1000
Access-Control-Allow-Headers:*

Impossible de trouver quoi que ce soit dans leur documentation , et cela ...

... GitHub Pages ne prend pas en charge les fichiers de configuration du serveur client tels que .htaccess ou .conf ...

... ne semble pas très prometteur - ou existe-t-il un moyen?

32
Max

EDIT: Ouais! Il semble que les pages GitHub prennent désormais en charge CORS: https://Twitter.com/invisiblecomma/status/575219895308324864

Cela peut être vérifié en curling une demande à enable-cors.org (qui est hébergée sur les pages GitHub). Exécution de cette commande: curl -v enable-cors.org > /dev/null renvoie un Access-Control-Allow-Origin: * entête.

Il n'y a aucun moyen de prendre en charge CORS sur les pages GitHub, bien que j'aimerais voir cette fonctionnalité. Nous hébergeons http://enable-cors.org sur les pages GitHub, et nous ne pouvons pas activer CORS sur le site lui-même :)

25
monsur

Vous pouvez utiliser un proxy CORS.
http://cors.io/ a fonctionné pour moi.

Demande normale:

$.getJSON('https://blockchain.info/stats?format=json',function(data){})

Demande avec proxy (ajoutez simplement http://cors.io/ ? sur l'url)

$.getJSON('http://cors.io/?https://blockchain.info/stats?format=json',function(data){})

MISE À JOUR: Les API doc ont été mis à jour, il vous suffit de préfixer votre URL avec https://cors.io/?.

10
Victor

Pour info, il semble que les pages GitHub prennent désormais en charge CORS (au moins dans certaines situations). Dans ce cas, des domaines personnalisés avec des URL nues (pas de sous-domaine www ou github). Cela signifie utiliser un enregistrement A et éviter leur mise en cache CDN.

Quand je vais sur enable-cors.org maintenant je vois le Access-Control-Allow-Origin: * en-tête retourné sur toutes les ressources (depuis l'onglet réseau des outils de développement du navigateur). Dans les deux Chrome et Firefox.

Je l'utilise sur https://isthetubeonstrike.com pour accéder à un domaine croisé de fichiers JSON à partir d'une application Web mobile . Le SSL/TLS est fourni en passant par CloudFlare BTW.

3
James Singleton

Vous pouvez émuler CORS sur la page Github avec des bibliothèques javascript comme https://github.com/jpillora/xdomain

1
David Jacquel

Ce que je retiens d'avoir mis en place un ticket de support il y a quelques jours, c'est que les demandes CORS à Les pages GitHub sont parfaitement bien.

Obtenir du contenu à partir de une autre page, ce à quoi la publication d'origine semble demander, signifie que le serveur de l'autre page doit avoir des demandes CORS configurées, sinon il bloquera vos demandes. En règle générale, les sites disposent d'API publiques pour contourner ce problème s'il existe un réel besoin d'en obtenir du contenu (par exemple, MediaWiki pour Wikipedia).

0
A13X

Dans mon cas, j'utilisais un domaine personnalisé mais j'ai oublié d'ajouter le domaine lors du déploiement (ng deploy --base-href https://customdomain.com/ ). Vérifiez l'onglet réseau dans dev-tools et observez l'URL pour vérifier si elle génère l'URL attendue ou non.

0
Gitesh kumar Jha