簡體   English   中英

使用IE11時無法讀取Javascript中的cookie

[英]Can't read cookies in Javascript when using IE11

我有一個有角度的應用程序,並且正在使用cookie來跟蹤一些信息。 我使用JavaScript訪問此Cookie,並且在Chrome上一切正常,但是在運行IE11時,我單步執行該代碼,JS無法讀取該Cookie。 我可以在開發人員工具上看到它,並且它不僅設置為HTTP。 我已經啟用了IE上的所有cookie。

任何幫助將不勝感激,因為我不知道為什么IE無法在我的應用程序中很好地播放。

這是我在控制器上設置cookie的方法

HttpResponseMessage Response = new HttpResponseMessage();
JsonMediaTypeFormatter json = new JsonMediaTypeFormatter();
Response.Content = new ObjectContent<PvUser>(MyPOCO, json, "application/json");
var cookie = new CookieHeaderValue(cookieName, cookieValue);
cookie.Domain = Request.RequestUri.Host;
cookie.Expires = DateTimeOffset.Now.AddMinutes(20);
cookie.HttpOnly = false;
Response.Headers.AddCookies(new CookieHeaderValue[] { cookie });

這是w3schools用來按名稱讀取Cookie的代碼

function getCookie(cname) {
  var name = cname + "=";
  var ca = document.cookie.split(';');
  for (var i = 0; i < ca.length; i++) {
      var c = ca[i];
      while (c.charAt(0) == ' ') c = c.substring(1);
      if (c.indexOf(name) == 0) return c.substring(name.length, c.length);
  }
  return "";
}

經過許多痛苦和磨難之后,我仍然不知道為什么會這樣,但是發現當我使用HttpReponse而不是HttpResponseMessage時,不會發生此問題。

HttpResponse Response =HttpContext.Current.Response;
Response.Clear();
Response.SetCookie(cookie);
Response.StatusCode = 200;// HttpStatusCode.OK;
Response.ContentType = "applicaiton/json; charset=utf-8";
Response.Write(jsonSerializer.Serialize(loggedInUser));
Response.End();

暫無
暫無

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

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