2017-02-02 1 views
1

Ich versuche, Daten auf meinem Server mithilfe der Fetch-API für die Anforderung abzurufen, aber die Anforderung nimmt FOREVER zur Verarbeitung auf (es wird schließlich verarbeitet). Ich verwende "Reagieren" als meine Ansicht und "Express" bietet meine Seiten an. Ich habe meinen Express- und JSX-Code unten aufgelistet. Irgendein Einblick, warum dies passieren kann (Die 'gemountete' Nachricht wird sofort wie erwartet protokolliert, aber die Fetch-API nach Verzögerungen)?Abruf-API-Verzögerung

Express:

app.use('/test',function(){ 
      console.log('connected'); 
    }) 

React.JS:

componentDidMount(){ 
     console.log('mounted'); 
     fetch('./test').then(function(response){ 
      console.log(response); 
     }).catch(function(error){ 
      console.log(error); 
     }) 
    } 
+0

Haben Sie die Netzwerkanforderung in den Browser-Entwicklertools überprüft? Dadurch erfahren Sie, ob die Anforderung langsam ist oder ob die Ergebnisse falsch verarbeitet werden. –

+0

Sie senden keine Antwort von Ihrem Server, so dass der Browser wartet und wartet und schließlich abläuft. Wenn Sie 'res.send (" hallo ")' oder eine solche Antwort machen, wird der Browser das sehr schnell bekommen. – jfriend00

Antwort

4

Sie haben die Antwort in der Server-Seite senden:

app.use('/test',function(request, response){ 
      console.log('connected'); 
      response.send(); //!!!!! this line 
     //Or: response.sendStatus(200); to send status code without body 

    }); 

... sonst der Endpunkt wird nicht beendet werden.

+0

Vielen Dank für meinen Fehler. Es ist immer das Triviale, das dich aufhängen lässt. –