2013-03-14 55 views
2

後來我將一個大的開發項目從使用cookie切換到使用localStorage。 但是我意識到我有點槍斃,而且有些cookie實際上是在服務器上需要的。IE 10沒有設置/發送cookies(從js)到服務器

我已將這些設置從localStorage設置爲使用cookie。 然而,在此期間,我在Win7開發箱上安裝了IE10,並將我的開發服務器從IIS Express切換到本地運行的ISS 7.5。

爲了讓小提琴手攔截我的本地流量我通過URL

http://local_iis/ 

這是在主機標識的文件訪問開發頁面爲:

local_iis 127.0.0.1 

但是IE10無法設置Cookie時使用此測試頁訪問此域的網頁:

<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <title></title> 
    <script type="text/javascript"> 
     document.cookie = "test=value"; 
     alert(document.cookie); // gives "" in IE 10 
    </script> 
</head> 
<body> 

</body> 
</html> 

曾經運行我的測試頁從任一的下面設置cookie(和警報值)

http://localhost/ 
http://127.0.0.1/  

的Cookie會在兩個FF和Chrome設置,並通知了正確的,因爲我只使用IE瀏覽器的開發和測試我已將安全設置更改爲允許「安全」選項卡下的「隱私」選項卡和「本地Intranet」和「受信任的站點」區域中的所有內容。 我已將local_iis添加到可信站點。

仍然沒有設置cookie。

有誰知道爲什麼?

+0

對我來說完全一樣。我嘗試重新安裝IE10,但沒有成功。你解決了你的問題嗎? – jmcollin92 2013-04-06 14:19:53

回答

7

根據發現的另一個主題here和後續提到的MS博客there發生這種情況是因爲您已經在您的機器的名稱下劃線!邪惡,是吧?

看到這個:

Q5:當主機名/域名包含下劃線IE瀏覽器將無法設置cookie? A:正確。從技術上講,下劃線不是DNS字符,雖然Windows在命名機器時會讓您使用下劃線,但會警告您這樣做可能會導致問題。一個這樣的問題是WinINET阻止嘗試在這些域上設置cookie。