2012-06-25 35 views
0

這裏的JavaScript代碼所示:MVC Cookie不能由JavaScript

var tmp = escape(document.cookie.match(/TestSession=[^;]+(;|$)/)[0]);` 

在MVC中,如果我有這樣的工作原理:

var cookie = new HttpCookie("TestSession", "SomeValue") { 
       Expires = DateTime.Now.AddYears(1) 
      }; 

但是,如果我補充一下:

cookie.Domain = "Test.com"; 

{ Expires = DateTime.Now.AddYears(1), Domain = "Test.com" }; 

JavaScript的tmpnullundefined

任何想法?

+0

你期望什麼結果?您的網站在哪個域上運行? –

回答

1

請記住,您cannot access cookies of another domain。因此,如果您在與test.com不同的域下運行網站,您將無法訪問cookie。

注意:從http://localhost開始工作時也是如此 - 因爲localhosttest.com的來源不同。

要解決此問題,您可以檢查服務器上的當前主機並相應地設置domain


更新(評論)之後

正如安德烈注意,你也可以將主機條目添加到映射test.comlocalhost本地主機文件。但是,當您需要導航到網站的生產版本時,您需要記住將其註釋掉。

+0

如果我在本地主機上運行,​​該怎麼辦? – aaa

+1

您可以更新主機文件(%Windows%\ System32 \ drivers \ etc \ hosts) –

+0

關於如何更新主機文件的大文章:http://www.howtogeek.com/howto/27350/ – alan