Google Apps脚本和Cookie
问题描述:
我试图发布并获取cookie。我是新手,这对我来说是一个学习项目。我的印象是,如果您使用'set-cookie',则应该能够在.toSource中看到额外的'set-cookie'。 (我试图在Google Apps网站上完成此操作,如果这有所帮助)。我错过了什么?这里是我的代码:Google Apps脚本和Cookie
function setGetCookies() {
var payload = {'set-cookie' : 'test'};
var opt2 = {'headers':payload, "method":"post"};
UrlFetchApp.fetch("https://sites.google.com/a/example.com/blacksmith", opt2);
var response = UrlFetchApp.fetch("https://sites.google.com/a/example.com/blacksmith")
var openId = response.getAllHeaders().toSource();
Logger.log(openId)
var AllHeaders = response.getAllHeaders();
for (var prop in AllHeaders) {
if (prop.toLowerCase() == "set-cookie") {
// if there's only one cookie, convert it into an array:
var myArray = [];
if (Array.isArray(AllHeaders[prop])) {
myArray=AllHeaders[prop];
} else {
myArray[0]=AllHeaders[prop];
}
// now process the cookies
myArray.forEach(function(cookie) {
Logger.log(cookie);
});
break;
}
}
}
在此先感谢!我引用这个来开发代码:Cookie handling in Google Apps Script - How to send cookies in header?
向任何建议打开。
答
当您未登录时Google协作平台将不会在响应中设置任何Cookie。 UrlFetchApp不会传递您的Google Cookie,因此它会表现得好像您已注销一样。
答
首先,您要发送名称为'test'的cookie没有值。你应该发送'test = somevalue'。
第二我想知道你是否试图发送cookie到googlesite服务器,并要求它回复你之前发送的同一个cookie ...?
我想你是一个HTTP服务器,你是一个HTTP客户端。 作为一个HTTP客户端,您的角色只是发回HTTP服务器以前发送给您的任何cookie(尊重域,过期... params)。