簡體   English   中英

在Node.js中,如何在 <meta http-equiv> 標簽

[英]in Node.js, how to get set-cookie value in a <meta http-equiv> tag

在Node.js中,我需要捕獲在響應中設置cookie的實例,以便可以對其進行操作。 我正在解決設置cookie的兩種方法:

  1. 通過set-cookie HTTP標頭
  2. 通過<meta http-equiv="Set-Cookie">

我可以使用以下方法使第一個工作:

if (getProperty(responseHeaders, 'set-cookie') != null) {
    //do something
}

我將如何解決第二種方法? 我需要抓取HTML響應,還是有更好的方法? 如果是前者,怎么辦?

我通過在響應主體上使用正則表達式解決了這個問題:

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);

Cookies作為HTTP標頭的一部分進行傳輸。 這是HTTP內容,而不是HTML內容。

當Cookie從客戶端發送到您的服務器時,標頭字段稱為“ Cookie”。 如果要在客戶端瀏覽器中設置或保留cookie,則在響應傳入請求時,必須始終在響應中包括“ Set-Cookie”標簽。

如果您未設置cookie,它將在客戶端瀏覽器中刪除。

您可以在req.header['set-cookie']req.header['set-cookie'] ,也可以使用響應以相同的方式設置cookie。

有很多好的庫可以為您完成所有這些工作。 看一下https://github.com/jed/cookies ,它適用於Express,Connect和普通的NodeJS :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM