2014-01-23 2 views
0

Node.js에서 쿠키를 응답에 설정 한 인스턴스를 잡아서 조작 할 수 있어야합니다., Node.js의 <meta http-equiv> 태그에서 쿠키 설정 값을 얻는 방법

if (getProperty(responseHeaders, 'set-cookie') != null) { 
    //do something 
} 
:
  • 내가 작업을 사용하여 첫 번째 하나를 얻을 수 오전 <meta http-equiv="Set-Cookie">
  • 를 통해 set-cookie HTTP 헤더를 통해

    1. : 나는이 두 개의 쿠키를 설정하는 방법을 해결하고

      두 번째 방법은 어떻게 해결할 수 있습니까? HTML 응답을 다 써야합니까, 아니면 더 좋은 방법이 있습니까? 전자라면, 어떻게?

    +0

    잘 모르겠어요를, 프로그래머 더 좋은 방법의 경우, 하지만 DOMParser 또는 간단한 정규 표현식을 사용합니다. – bbuecherl

    +0

    HTML 응답을 긁어 내야합니다 ...하지만 모든 브라우저가 메타 요소를 통해 설정된 쿠키를 지원합니까? – Quentin

    답변

    0

    내가 응답 본문에 정규식을 사용하여이 문제를 해결 작동 https://github.com/jed/cookies를 살펴 보자 :

    var regexHandler = function(match, cookieValue){ 
        return ""; //remove the meta tag 
    }; 
    
    responseBody = responseBody.replace(/<meta.*http-equiv=[\"']?set-cookie[\"']?.*content=[\"'](.*)[\"'].*>/gi, regexHandler); 
    responseBody = responseBody.replace(/<meta.*content=[\"'](.*)[\"'].*http-equiv=[\"']?set-cookie[\"']? .*>/gi, regexHandler); 
    
    -1

    쿠키는 HTTP 헤더의 일부로 전송됩니다. HTTP가 아닌 HTML입니다.

    쿠키가 클라이언트에서 서버로 전송되면 헤더 필드는 '쿠키'라고합니다. 고객 요청에 응답 할 때 클라이언트 브라우저에서 쿠키를 설정하거나 유지하려면 항상 응답에 'Set-Cookie'태그를 포함시켜야합니다.

    쿠키를 설정하지 않으면 클라이언트 브라우저에서 쿠키가 제거됩니다.

    쿠키는 req.header['set-cookie']에서 찾을 수 있으며 응답을 사용하여 쿠키를 설정할 수 있습니다.

    이 모든 작업을 수행 할 수있는 좋은 라이브러리가 많이 있습니다. 익스프레스, 연결 및 일반 NodeJS :