【问题标题】:How to set the session or cookie in https request to url?如何将https请求中的会话或cookie设置为url?
【发布时间】:2019-08-24 22:14:29
【问题描述】:

我使用 Node.js 调用下面的 url 并获取 https 请求,这里我需要发送带有 cookie 的会话,因为我知道 cookie 的价值。

var URL = require('url-parse');

var appurl = "https://test.somedomain.com"
var https = require('https');
var url = new URL(appurl);
var options = {
    host: url.host,
    url: appurl,
    path: url.pathname + url.query,
    method: 'GET',
    headers: {
        "Set-Cookie": "cookiValue1=abcdesg"
    }
};

var req = https.request(options, function (res) {
    console.log('STATUS: ' + res.statusCode);
    console.log('HEADERS: ' + JSON.stringify(res.headers));
    // console.log(res.headers.)
    // res.setEncoding('utf8');
    res.on('data', function (chunk) {
        console.log('BODY: ', chunk);
    });
});
req.on('error', function (e) {
    console.log('problem with request: ' + e.message);
});

req.write('data\n');
req.write('data\n');
req.end();

【问题讨论】:

  • 这里我问如何从客户端发送cookie。
  • edit您的问题更清楚地解释您的情况。或者,如果这个问题已经结束,请再问一个。您是否希望在浏览器中运行 Javascript 以在该浏览器中设置 cookie?您是否希望该 Javascript 在对某个服务器的请求中包含 cookie?

标签: javascript node.js


【解决方案1】:

标题应该是Cookie 而不是Set-Cookie

Set-Cookie 被服务器用来在客户端上设置一个 cookie。标头Cookie 用于客户端向服务器发送cookie。

【讨论】:

    【解决方案2】:

    所以nodejs服务器不是一个浏览器有windowdocument

    尝试在 js 客户端而不是 nodejs 中发送相同的请求

    你只能在这里设置cookie

    查看底部的指针

    var URL = require('url-parse');
    var https = require('https');
    var appurl = "https://stackoverflow.com/"
    var url = new URL(appurl);
    var options = {
        host: url.host,
        url: appurl,
        path: url.pathname + url.query,
        method: 'GET',
        headers: {
            "Cookie": "1111111111=abcdesg", // POINTER its unfortunately useless
            "Set-Cookie": "11111111=abcdesg" // POINTER its unfortunately useless
        }
    };
    
    var req = https.request(options, function (res) {
        console.log('before HEADERS: ' + JSON.stringify(res.headers));
        res.headers.cookiValue1 = 'abcdesg'; // POINTER
        console.log('after HEADERS: ' + JSON.stringify(res.headers));
    
    });
    req.on('error', function (e) {
        console.log('problem with request: ' + e.message);
    });
    
    req.write('data\n');
    req.write('data\n');
    req.end();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-04-27
      • 1970-01-01
      • 2011-02-10
      • 2017-02-04
      • 2013-11-19
      • 1970-01-01
      • 2012-11-18
      相关资源
      最近更新 更多