In einem Browser, wenn ich eine GET-Anfrage senden, wird die Anfrage in der Zwischenzeit den Cookie senden. Jetzt möchte ich eine GET-Anfrage von Node simulieren und dann den Code schreiben?Kann ich eine GET-Anfrage mit Cookies in den Kopfzeilen in Node senden?
Antwort
Mit der erstaunlichen request Bibliothek sind Cookies standardmäßig aktiviert. Sie können also Ihre eigene wie senden (von der Github Seite genommen):
var j = request.jar()
var cookie = request.cookie('your_cookie_here')
j.add(cookie)
request({url: 'http://www.google.com', jar: j}, function() {
request('http://images.google.com')
})
Wenn Sie es mit der nativen http:request()
Methode tun mögen, können Sie den entsprechenden Set-Cookie
Header gesetzt (eine HTTP-Referenz für das, was sie sehen sollte aussehen) in der headers
Mitglied der options
Argument; Es gibt keine spezifischen Methoden im nativen Code für den Umgang mit Cookies. Siehe den Quellcode in Mikeals request
-Bibliothek und/oder cookieParser
-Code in connect
, wenn Sie konkrete Beispiele benötigen.
Aber Femi hat mit ziemlicher Sicherheit Recht: Der Umgang mit Cookies ist voll von eher nickpicky Details und Sie werden fast immer besser mit Code, der bereits geschrieben und vor allem getestet wurde. Wenn Sie versuchen, dieses spezielle Rad neu zu erfinden, werden Sie wahrscheinlich Code entwickeln, der die meiste Zeit zu funktionieren scheint, aber gelegentlich und unvorhersehbar auf mysteriöse Weise versagt.
var jar = request.jar();
const jwtSecret = fs.readFileSync(`${__dirname}/.ssh/id_rsa`, 'utf8');
const token = jwt.sign(jwtPayload, jwtSecret, settings);
jar.setCookie(`any-name=${token}`, 'http://localhost:12345/');
const options = {
method: 'GET',
url: 'http://localhost:12345',
jar,
json: true
};
request(options, handleResponse);
Bitte fügen Sie weitere Beschreibungen und/oder Informationen zu Ihrer Antwort hinzu und wie das Problem gelöst wird, damit andere es verstehen können, ohne nach einer Klärung zu fragen – koceeng
- 1. Kopfzeilen senden + Bild anzeigen
- 2. Senden Sie eine GET-Anfrage mit Kopfzeilen in Haskell
- 3. So behalten Sie Cookies in Node-Webkit
- 4. PHP-GET-Anfrage, Kopfzeilen senden
- 5. Wie öffne ich URL in Safari mit voreingestellten Cookies oder Kopfzeilen in iOS?
- 6. Wie kann ich eine Datei in einer POST-Anfrage senden?
- 7. .net Cookies, muss ich an den Browser senden?
- 8. Wie Übergeben Sie Cookies über Node-Fetch in isomorphe App?
- 9. nicht senden die cookies in iframe
- 10. Wie lese ich den Ajax-Parameterwert in Node ohne Framework?
- 11. So senden Sie Cookies mit Selen-Webdriver?
- 12. Umgang mit Cookies in Google Apps Script - So senden Sie Cookies im Header?
- 13. Wie kann ich Cookies in meinem Webbrowser-Steuerelement hinzufügen?
- 14. Senden Mobile Browser httpOnly Cookies über den HTML5 Audio-Tag?
- 15. window.open mit Kopfzeilen
- 16. Mache Kopfzeilen in verschiedenen Zeilen
- 17. Wie kann ich den Chrome-Browser aktivieren, um lokale Cookies zuzulassen? --Enable-Datei-Cookies
- 18. Alamofire: POST-Anfrage mit Kopfzeilen
- 19. Verarbeitung von Dateien mit Kopfzeilen in Hadoop
- 20. In Schienen wie kann ich eine AJAX Anfrage senden ohne? in den Daten?
- 21. Wird eine Ajax-Anfrage zum Senden von Cookies garantiert?
- 22. So senden Sie JavaScript und Cookies in Scrapy aktiviert?
- 23. Warum kann ich nicht gcloud-node in nodejs project verwenden
- 24. Rendern von Daten in Kopfzeilen mit RoR
- 25. Wie kann ich Cookies in Adobe Air-Anwendung löschen
- 26. Kann Cookies in Javascript nicht lesen, wenn ich IE11 verwende
- 27. Wie kann ich zwischen doppelten Cookies unterscheiden?
- 28. Wie kann ich Cookies in Schienen lesen, die von jquery
- 29. Umgebungsvariablen mit Zeilenumbrüchen in Node?
- 30. Ich kann anscheinend nicht auf Cookies in Python zugreifen (2.4)
Aber wie sieht der Code nur mit Standardmodulen aus? – jiyinyiyong
Ah: nicht sicher. Ich habe nie versucht, den Standard-HTTP-Client für meine Anfragen zu verwenden. – Femi
Ich habe gerade angefangen, mehr über HTTP zu lernen. Ich denke, wenn das Standard-HTTP-Modul die Methode dafür hat, kann ich mehr Details darüber erfahren. – jiyinyiyong