2015-12-11 12 views
9
function getCookies(){ 

    request('http://google.com', function (error, response, body) { 
     if (!error && response.statusCode == 200) { 
      console.log(response.headers); 
     } 
    }) 
} 

ErgebnisWie bekomme ich Cookies vom Anfrage-Modul in node.js?

{ date: 'Fri, 11 Dec 2015 07:15:50 GMT', 
    expires: '-1', 
    'cache-control': 'private, max-age=0', 
    'content-type': 'text/html; charset=EUC-KR', 
    p3p: 'CP="This is not a P3P policy! See https://www.google.com/support/accounts/answer/151657?hl=en for more info."', 
    server: 'gws', 
    'x-xss-protection': '1; mode=block', 
    'x-frame-options': 'SAMEORIGIN', 
    'set-cookie': 
    [ 'PREF=ID=1111111111111111:FF=0:TM=1449818150:LM=1449818150:V=1:S=Q3BB20FA6TkaZymd; expires=Thu, 31-Dec-2015 16:02:17 GMT; path=/; domain=.google.co.kr', 
    'NID=74=hnriWxk7N9jHtP5W0qgaxrwD1YuNKOmJg748ucxWilu9jaqHJVovfkYdvMr0tlp-VToID5cdTNDSXNXqr4M8umJ9traab67x2xZKfu3hJbsBRXeVvyiCOcwZ8bkXNcU4; expires=Sat, 11-Jun-2016 07:15:50 GMT; path=/; domain=.google.co.kr; HttpOnly' ], 
    'accept-ranges': 'none', 
    vary: 'Accept-Encoding', 
    connection: 'close' } 

Ich möchte abholen Wert von 'Set-Cookie' von Response-Header. Wie hole ich es auf? Gibt es einen coolen und einfachen Weg? Sollte ich für eine Aussage aus dem filekey verwenden, oder. Was soll ich machen? Ich weiß nicht, dass ich total neu in Javascript bin. Dank ...

Antwort

7
function getCookies(callback){ 

    request('http://google.com', function (error, response, body) { 
     if (!error && response.statusCode == 200) { 
      return callback(null, response.headers['set-cookie']); 
     } else { 
      return callback(error); 
     } 
    }) 
} 

dann können Sie anrufen:

getCookies(function(err, res){ 
    if(!err) 
     console.log(res) 
}) 
+0

wow, wirklich? Dies ist eine viel weniger freundliche Möglichkeit, Cookies zu erhalten, um auf der Serverseite auszudrücken, wo ich einfach "req.cookies.cookieName" sagen kann – Michael

6

Allgemeinen mit Knoten sprechen, wenn es sich um ein weit verbreitetes Problem ist, ist schon die Mühe gemacht, jemanden zu lösen etwas auf npm zu schreiben und zu veröffentlichen.

Zum Beispiel request-cookies!

Insbesondere denke ich, dass Sie die toJSON() Methode am hilfreichsten finden werden, obwohl zugegebenermaßen die Dokumentation des Pakets eher leicht ist. Sie können die tests für einige Arbeitsbeispiele auschecken.

Das heißt, hat Antrag bereits einige umfangreiche Dokumentation über Cookies sowie - finden Sie vielleicht das Ihren Bedürfnissen entspricht:

von Cookies standardmäßig deaktiviert sind (sonst würden sie in nachfolgenden Anforderungen verwendet werden). Um Cookies zu aktivieren, setzen Sie jar auf true (entweder in defaults oder options).

(Scrollen Sie bis zum Ende der readme, um die Bits über Cookies zu finden).

4

Hier ist, wie Sie Anfrage-Cookies verwenden können, wie @brandonscript sagte.

var request = require('request'); 
var Cookie = require('request-cookies').Cookie; 

request.get('https://google.com', function(err, response, body) { 
    var rawcookies = response.headers['set-cookie']; 
    for (var i in rawcookies) { 
    var cookie = new Cookie(rawcookies[i]); 
    console.log(cookie.key, cookie.value, cookie.expires); 
    } 
}); 

Beispiel für die Ausgabe von goolge:

NID 98=FfYHDY9-40JzE78qxIpaMugODJ4y4zJIydluKUffvh1lDs70DYk7vrlmw2ca2gD54ywx5WV44Utz9EdLOdFE6IcW2BUGfiVpHZx3kWh69tT_eWlXZTiFkRo7TVr_9WWH 2017-09-08T04:22:41.000Z 
Verwandte Themen