我現在瘋了,我一直在花費一天的時間去應付一無所獲。作爲第三方閱讀我自己的域名cookie
我做
var cookie = req.cookies.my_user;
if(!cookie){
console.log("not user");
res.cookie('my_user', user._id, {maxAge: 900000, httpOnly: false });
}
我運行的網站爲localhost我compoundjs網站以下(在服務器上):3000
當我從一些頁面運行下面的書籤我不控制
var link = document.createElement("link");
link.type = "text/css";
link.rel = "stylesheet";
link.href = "//localhost:3000/bookmarklet/bookmarklet.css";
var head = document.getElementsByTagName("head");
head[0].appendChild(link);
var script = document.createElement('script');
script.src = "//localhost:3000/bookmarklet/bookmarklet.js";
head[0].appendChild(script);
和bookmarklet.js裏面我做
console.log(document.cookie);
我沒有設置cookie。
很明顯,我應該訪問,因爲腳本是從我設置cookie的同一個域中提供的。
我去看看從該頁面提供的實際HTML文檔,並打開控制檯,並做console.log(document.cookie)我看到我的cookie,但不是如果我執行JavaScript內寫入到文件。
換句話說,它表現得好像它是我設置的會話cookie,儘管它不應該如我所瞭解的那樣。
當我在其他站點上的腳本中查看document.cookies時,它會顯示以下內容:CFID = 141701010; CFTOKEN = 5599abd5d67ae4a4-7C095B6D-9CD9-D5A9-300B140A02F494F9; __qca = P0-285957599-1404239672015; __utma = 1.1407759513.1404239672.1405887047.1405948443.68; __utmz = 1.1404239672.1.1.utmcsr =(直接)| utmccn =(直接)| utmcmd =(無); 。__utmv = 1 | 1 =用戶%20Type =非成員= 1; _cb_ls = 1; _chartbeat2 = BL1dzWBm0jTrC6undF.1403386051352.1405951394845.1111100011111111; _chartbeat_uuniq = 3; __utmb = 1.4.10.1405948443; __utmc = 1 – user254694
當我查看我的網站上的文檔cookie時,它顯示session = s%3Amy_user%3D53cad14d351ac8941752a278.fxNTCK5j3%2BMs0y3O%2FEons%2F9RaTY%2FY5HaPuXMw9ZhzEE; my_user = j%3A%2253cad14d351ac8941752a278%22 – user254694
chartbeat當然是一個由chartbeat設置的cookie,但據我所知在我們的node.js站點中沒有使用它,但爲什麼我應該能夠將它作爲document.cookie通過localhost提供的腳本訪問:3000 – user254694