无法从Node中获取set-cookie以响应NodeJS

时间:2014-12-11 14:42:05

标签: node.js http cookies httpresponse setcookie

我在节点

中尝试了3个不同的http库
  1. 节点请求
  2. 节点请求
  3. node needle
  4. 所有3个图书馆都无法从我的回复

    获取我的set-cookie

    请求

    15:32:52 - WARN  - now testing with request
    { 'x-powered-by': 'Express',
      'content-type': 'application/json; charset=utf-8',
      'content-length': '4591',
      date: 'Thu, 11 Dec 2014 14:32:52 GMT',
      connection: 'keep-alive' }
    

    15:32:52 - WARN  - now testing with needle
    { 'x-powered-by': 'Express',
      'content-type': 'application/json; charset=utf-8',
      'content-length': '4591',
      date: 'Thu, 11 Dec 2014 14:32:52 GMT',
      connection: 'close' }
    

    Requestify

    15:32:52 - WARN  - now testing with requestify
    { 'x-powered-by': 'Express',
      'content-type': 'application/json; charset=utf-8',
      'content-length': '4591',
      date: 'Thu, 11 Dec 2014 14:32:52 GMT',
      connection: 'keep-alive' }
    

    这是带有wget的结果标题

    Connecting to localhost (localhost)|127.0.0.1|:8000... connected.
    HTTP request sent, awaiting response...
      HTTP/1.1 200 OK
      X-Powered-By: Express
      Accept-Ranges: bytes
      Date: Thu, 11 Dec 2014 14:38:49 GMT
      Cache-Control: public, max-age=0
      Last-Modified: Thu, 11 Dec 2014 09:56:58 GMT
      ETag: W/"7c2-2140188116"
      Content-Type: text/html; charset=UTF-8
      Content-Length: 1986
      set-cookie: session=s%3AHI2alIkPOxVLXgJCymvAPbTZt1urIpEE.dBB7ZrpWjKAkwSALBVgbyJtRq9ZABMq9VJh%2F3XT6r8A; Path=/; Expires=Thu, 11 Dec 2014 15:08:49 GMT; HttpOnly
      Connection: keep-alive
    Length: 1986 (1.9K) [text/html]
    

    如果这可以提供帮助,请参阅我的请求

    中的标题
    var commonHeaders = {
        'Accept': '*/*',
        'Accept-Encoding': 'gzip, deflate',
        'Accept-Language': 'fr',
        'Cache-Control': 'no-cache',
        'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
        'Connection': 'keep-alive',
        'Pragma': 'no-cache',
        'User-Agent': 'request'
    };
    

    虽然firefox,chrome和wget可以获得完整的标题,但我无法对节点进行身份验证。 这是Node的问题吗?我应该用Python做到吗?

    编辑:

    我试图删除通过节点发布的数据,我也有与wget相同的响应。 当我使用浏览器并完成登录操作时,它会返回我的json + set-cookie。

    为什么节点不可能?

1 个答案:

答案 0 :(得分:0)

您可能没有正确使用Cookie。通常它们不会直接作为标头变量访问。有关如何处理cookie的信息,请参阅request文档。那里有很好的例子。

  

默认情况下禁用Cookie(否则,它们将被用于   后续要求)。要启用cookie,请将jar设置为true(在   默认值或选项)并安装tough-cookie。