通过代理请求nodeJS。如何获得响应标头?

时间:2018-05-03 14:53:32

标签: javascript node.js https request

我试图获取网站的响应标题并获取我可以在其中找到的Cookie。没有问题,当我通过带有" node file.js"的终端启动请求时,它正在工作。

但是我通过本地HTML页面启动POST请求,因此我使用browersify来启动客户端的请求(或者至少这是我所理解的)。

然后我使用CORS代理来解决“No Access-Control-Allow-Origin header”问题。当我从我的本地HTML页面开始请求时它正在工作,我可以阅读正文,但我无法找到网站的响应标题并获得我需要的cookie。

这是我的请求的样子:

    function connectionInfoConcert(account, psw, next){
console.log("-------------CREATE HEADER-------------\n")
var options = {
    method: 'POST',
    url: 'https://tranquil-thicket-71867.herokuapp.com/https://www.infoconcert.com/mon-infoconcert/connexion.html',
    headers: {
      'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
      'Accept-Language':'fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7',
      'Cache-Control':'max-age=0',
      'Connection':'keep-alive',
      'Content-Length':'184',
      'Content-Type':'application/x-www-form-urlencoded',
      'origin': 'https://www.infoconcert.com',
      'referer': 'https://www.infoconcert.com/mon-infoconcert/connexion.html'
    },
    form: {
        origin:'',
        username: account,
        password: psw
    }
};
console.log("-------------END HEADER-------------\n-----------START REQUEST-----------------------")
request(options, function (error, response, body) {
    if (!error) {
        console.log(response)
        console.log(body)
        console.log(response.headers['set-cookie'][0]); //obviously 'set-cookie' doesn't exist
    }
    else {
        console.log(error)
        console.log(response)
        console.log("-------------ERROR------------")
        return console.log("Something went wrong")
    }
});}

https://www.infoconcert.com/mon-infoconcert/connexion.html是我尝试获取Cookie的网站

https://tranquil-thicket-71867.herokuapp.com是我正在使用的CORS代理。

如果你们中的一些人知道如何能够获得正确的标题,那将是非常好的!

编辑1:

问题在于我向" https://www.infoconcert.com/mon-infoconcert/connexion.html"我可以在response.headers [" set-cookie"]中找到我正在寻找的cookie。 但是因为我在html页面上做了请求而它没有工作,而且我正在向" https://tranquil-thicket-71867.herokuapp.com/https://www.infoconcert.com/mon-infoconcert/connexion.html"但我无法在回复中找到我的cookie。

这里是来自" https://tranquil-thicket-71867.herokuapp.com/https://www.infoconcert.com/mon-infoconcert/connexion.html"

的回复标题
Access-Control-Allow-Origin: *
Access-Control-Expose-Headers: server,vary,cache-control,content-type,content-encoding,p3p,date,expires,pragma,connection,x-cache-info,x-final-url,access-control-allow-origin
Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform
Connection: keep-alive
Content-Encoding: gzip
Content-Type: text/html; charset=UTF-8
Date: Thu, 03 May 2018 17:23:49 GMT
Expires: Thu, 19 Nov 1981 08:52:00 GMT
P3p: policyref="/w3c/p3p.xml", CP="NOI DSP COR NID CUR ADM DEV OUR BUS"
Pragma: no-cache
Server: Apache
Transfer-Encoding: chunked
Vary: Accept-Encoding,User-Agent
Via: 1.1 vegur
X-Cache-Info: not cacheable; response specified "Cache-Control: private"
X-Cors-Redirect-1: 302 https://www.infoconcert.com/mon-infoconcert/index.html
X-Cors-Redirect-2: 302 https://www.infoconcert.com/mon-infoconcert/connexion.html
X-Final-Url: https://www.infoconcert.com/mon-infoconcert/connexion.html
X-Request-Url: https://www.infoconcert.com/mon-infoconcert/connexion.html

所以我认为我的代理人并没有转发他获得的cookie。

如果您需要更多详细信息,请询问。

非常感谢你的帮助

0 个答案:

没有答案