jquery – 为什么我在IE 9中丢失cookie和会话在Ajax请求

前端之家收集整理的这篇文章主要介绍了jquery – 为什么我在IE 9中丢失cookie和会话在Ajax请求前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
会话Cookie在Chrome和Firefox中都可以正常工作,但是使用IE9和 AJAX请求,我会丢失所有会话cookie.

直接要求查看

public class AddressController : Controller
  {
    [MvcSiteMapNode(Title = "Addresses",ParentKey = "MyAccount",Key = "Addresses")]
     public ActionResult Index()
     {
        ....
         var memberId = GetKeyValues.GetMemberId(); // This works perfect.
        ...
      }

Ajax调用

$.ajax({
        url: "/Address/CheckPrimaryAddressGood?t="+ Math.random(),type: "Get",success: function(data) {
         ...

public class AddressController : Controller
{
    public ActionResult CheckPrimaryAddressGood()
        {
           ...
           var memberId = GetKeyValues.GetMemberId();
           ...
       }
 }
 public static class GetKeyValues
 {
    public static string GetMemberId()
    {
         if (HttpContext.Current.Session[keyCookie] != null)
            {
                memberId = GetMemberIdFromSession();
            }
            else if (HttpContext.Current.Request.Cookies["token"] != null)
            {
                memberId = GetMemberIdFromCookie();
            }
    }
}

来自AJAX的电话我丢失了cookies值IE9.我试过P3P重写仍然没有工作从这个帖子P3P link

有人有类似的问题吗?请让我知道如何解决这个问题.我已经在这一天度过了一天.

编辑

我只是在Fiddler中追踪IE不发送头数据,它只是发送“Connection = Keep-Alive& Pragma = no-cache& Accept = * / *& Accept-Encoding = gzip,deflate& Accept-Language = en-US&amp ; Host = ebiz.company.com:28712&User-Agent = Mozilla / 5.0(兼容; MSIE 9.0; Windows NT 6.1; WOW64; Trident / 5.0)& Origin = http://ebiz.spe.org:28712}

但是Chrome:{Connection = keep-alive& Accept = * / *& Accept-Encoding = gzip,deflate,sdch& Accept-Language = en-US,en; q = 0.8& Cookie = ASP.NET_SessionId = 2a4tr1ymierclqsfxyfahqbc; __session:0.5654769616667181:showwarning = TRUE; __session:0.5654769616667181:BadAddressWarning = FALSE; ….

为什么?

解决方法

这些只是一些想法,这可能有所帮助(而且您可能已经阅读或尝试过了).似乎没有一个银弹.

其他一些问题有类似的问题,这似乎并不完全符合您的要求(尤其是您尝试过P3P).还有很多在互联网上的帖子,一切都在几个问题上.

No Session Cookies on Internet Explorer 9 AJAX requests

Cookie blocked/not saved in IFRAME in Internet Explorer

一些想法:

>一个答案在url的下划线有问题.你没有
那么,但是你可以尝试一个没有随机参数的干净的?只是
以防万一不喜欢.
>许多关于麻烦这样做的帖子
从一个iframe.如果你没有iframe,这不是
问题.
> P3P,你说你试过了我看到一个评论标题
必须在每个请求上设置,而不仅仅是寻找
会议/饼干.
>跨域/ CORS问题?看起来不像
与你的根相对的url.
>尝试在另一台电脑上使用IE9?愚蠢,
但也许这是您的浏览器的一些晦涩的设置;区域等
fiddler是否在您网站上浏览的常规页面显示会话ID? (只是为了确保它不是站点范围而不是这个ajax调用).
>我通常发布ajax而不是Get(只是有很多数据),并做
有会话工作.这也避免了需要缓存清除功能
随机参数.
>我使用好的旧Web表单而不是mvc,并发布到asmx.上
asmx方法,我需要装饰服务器端的方法.

// ScriptService and ScriptMethod are required for the jquery.ajax() call. They weren't required for jquery.post(). WebMethod needed for session.
[WebMethod(EnableSession = true)]
[ScriptMethod]
public string DoSomething() ...
原文链接:https://www.f2er.com/jquery/179542.html

猜你在找的jQuery相关文章