web-dev-qa-db-fra.com

Configurer les en-têtes CORS de ngrok

J'exécute un serveur Web local, qui exécute une requête XHR sur un serveur ngrok, également à partir de mon PC. 

Je reçois XMLHttpRequest cannot load http://foo.ngrok.io/. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access.

Il semble que ngrok FAQ mentionne les en-têtes CORS, mais uniquement par rapport à l'authentification de base - il ne mentionne pas comment définir les en-têtes afin que je puisse tester mon application en développement.

Comment changer les options CORS de ngrok pour permettre le chargement de requêtes depuis localhost?

13
Cat Boss

Je suis tombé sur ce problème aujourd'hui et j'ai pu le résoudre en démarrant ngrok et en incluant le drapeau -Host-header.

ngrok http -Host-header=rewrite 3000

De la docs:

Utilisez le commutateur -Host-header pour réécrire les demandes HTTP entrantes.

Si la réécriture est spécifiée, l'en-tête de l'hôte sera réécrit pour correspondre à La partie du nom d'hôte de l'adresse de transfert.

2
Dave Kiss

Tout d’abord, ngrok n’est qu’un tunnel et non un serveur; il n’est donc absolument pas possible de configurer l’en-tête CORS dans ngrok. Donc, tout type de configuration CORS doit être fait au niveau du serveur.

Par exemple, si vous utilisez un serveur nginx, vous devez configurer un en-tête dans le fichier de configuration nginx comme suit:

location / {
    /*some default configuration here*/
    add_header 'Access-Control-Allow-Origin' '*';
}

En ajoutant cet en-tête, vous indiquez que l'accès croisé d'origine à votre adresse est autorisé à partir de n'importe quelle adresse, car la valeur de l'en-tête est '*'. Vous pouvez également spécifier une adresse particulière pour laquelle l'accès à votre adresse est autorisé en remplaçant la valeur.

0