2016-10-08 4 views
-2

Ich arbeite an Express.js und einem bestimmten Endpunkt macht die Seite mitWie eine Seite nach einer GET-Anfrage Knoten js

res.render('dialog',{state:'admin'}); 

Dieser Endpunkt ist bei http://localhost:3000/api/login zu machen. Wenn ich diesen Link im Browser zu öffnen, öffnet es die dialog.ejs Seite, aber wenn ich diesen Endpunkt rufe eine GET-Anforderung unter Verwendung von einem anderen Teil des Servers wird die dialog.ejs Seite nicht gerendert

request({ 
    url: 'http://localhost:3000/api/login', 
    headers:{ 
     'Authorization' : auth 
    }, 
    method: 'GET' 
}, function(err, response, body) { 
    console.log("Response to request for authorization code : " + response.statusCode); 
}); 

Bitte helfen !

+0

Überprüfen Sie den Körper in request() Anruf für ex. console.log (err, response, body) body ist die Ausgabe des Aufrufs. –

+0

Ich habe getan console.log (Körper), bekam ich den Inhalt der EJS-Datei: Bier Locker

Hallo nik!

alexa fordert Vollzugriff zu Ihrem Konto an.

Genehmigen Sie?

user3655266

+0

was bedeutet, Sie erhalten modales HTML korrekt in der Antwort von request() auch. –

Antwort

0

Nun, wenn Sie eine handgemachte Anfrage bauen Chancen, dass Sie die Hälfte der Header sind vermisst der Browser sendet, so dass einer der Gründe dafür sein kann, die ganze Sache

Auf dem anderen versagt, wenn Wenn Sie eine Maschine zur Maschinenanfrage machen, wollen Sie NICHT, dass die EJS-Seite gerendert wird. Sie müssen nur die benötigten Daten wiederherstellen und/oder den Server etwas tun ", wie Sie sich von einem Browser aus einloggen".

Und wie Sie die Berechtigung Kopf sind einschließlich, Sie versuchen wahrscheinlich eine Anmeldung oder Genehmigung irgendeiner Art zu simulieren (vielleicht ein JWT Token?)

Jeder Fall i oyour nur Optionen denken ist, was zu imitieren Ihr Browser tut so weit wie möglich. Also Build eine perfekt richtige Menge von Headern, injizieren, was wird das Ergebnis der Formulardaten sein, wahrscheinlich url_encoded, und verwenden Sie die richtige Anfrage-Methode (GET ist vollkommen richtig, aber von einem HTML-Code aus POST kommt viel häufiger. Überprüfen Sie es)

Nur ein Vorschlag. Das Rendern einer vollständigen Webseite von einer/api/login scheint ein bisschen falsch zu sein. Normalerweise sprechen Api-Enpoints nur JSON. In und out