it-swarm.com.de

Ungültiger Hostheader, wenn ngrok versucht, eine Verbindung zum React dev-Server herzustellen

Ich versuche, meine React-Anwendung auf einem mobilen Gerät zu testen. Ich verwende ngrok, um meinen lokalen Server für andere Geräte verfügbar zu machen, und habe dies mit einer Vielzahl anderer Anwendungen funktionieren lassen. Wenn ich jedoch versuche, ngrok mit dem React Dev-Server zu verbinden, erhalte ich die Fehlermeldung:

Invalid Host Header 

Ich glaube, dass React standardmäßig alle Anfragen aus einer anderen Quelle blockiert. Irgendwelche Gedanken?

75
Patrick Connors

ich stieß auf ein ähnliches Problem und fand zwei Lösungen, die funktionieren, wenn die Anwendung direkt in einem Browser angezeigt wird

ngrok http 8080 -Host-header="localhost:8080"
ngrok http --Host-header=rewrite 8080

ersetze natürlich 8080 durch den Port, auf dem du gerade läuft

diese lösung wirft immer noch einen fehler auf, wenn ich dies in einer eingebetteten seite verwende, die die bundle.js aus der reag-app zieht. Ich denke, da er den Header in localhost umschreibt, wenn er eingebettet ist, sucht er nach localhost, auf dem die App nicht mehr läuft

249
textual

Ich habe dieses Setup in einer React-App verwendet, die funktioniert. Ich habe eine Konfigurationsdatei mit dem Namen configstrp.js erstellt, die Folgendes enthält:

module.exports = {
ngrok: {
// use the local frontend port to connect
enabled: process.env.NODE_ENV !== 'production',
port: process.env.PORT || 3000,
subdomain: process.env.NGROK_SUBDOMAIN,
authtoken: process.env.NGROK_AUTHTOKEN
},   }

Fordern Sie die Datei auf dem Server an. 

const configstrp      = require('./config/configstrp.js');
const ngrok = configstrp.ngrok.enabled ? require('ngrok') : null;

und verbinden als solches

if (ngrok) {
console.log('If nGronk')
ngrok.connect(
    {
    addr: configstrp.ngrok.port,
    subdomain: configstrp.ngrok.subdomain,
    authtoken: configstrp.ngrok.authtoken,
    Host_header:3000
  },
  (err, url) => {
    if (err) {

    } else {

    }
   }
  );
 }

Übergeben Sie keine Unterdomäne, wenn Sie keine benutzerdefinierte Domäne haben

1
FlyingSnowGhost