2017-12-06 50 views
5

Bir asp.net mvc uygulamasına sahibim ve bu garip şeyi oluyor ve nedenini bilmiyorum.Çerezler siliniyor

Bağlam:

Ben kullanıcı çizmek ve düzenlemek için görüntüleri sağlayan bir sayfa var. Bu sayfa, her 5 dakikada bir, jquery kullanarak sunucuya ajax çağrısı yaptı, veritabanındaki projenin mevcut durumunu ve başka bir çağrıyı saklamak için uygun bir yerde depolanan projenin bir görüntüsünü kaydetmek .

Sorun: Bu özellik, sunucuya ajax çağrısından sonra, çerez Müşteri olduğunu başlatılır minimize tarayıcısı ile

silindi. Ancak krom en üst düzeye çıkarıldığında, bu iyi çalışır.

Notlar: tarayıcı en azından krom ve ateş, bu oluyor

  • minimize edildiğinde

    1. Bu yalnızca gerçekleşir.
    2. Bu yalnızca üretim ortamında gerçekleşir. Eğer verebilir eğer benim yerel makinede ve görsel stüdyo i, seni bu bilgilere sahip tek yardım etmek için o kadar zor olduğunu biliyoruz

  • asp.net oturum tanımlama mantainned edilir
  • sorunu yeniden ama olamaz bana gerçekten yardımcı olacak ipuçları. Sorunu açığa vurmaya çalışıyorum, böylece bu dava için en iyi çözümü bulmak için benzer konuları eşleştirebiliriz.

    [DÜZENLE] şimdiden teşekkürler:

    Ben konuyla ilgili bazı yeni vardır:

    1. Chrome Sürümü 63.0.3239.84 (Resmi Yapı) Kullanma (64 bit); 5712 (64-bit);
    2. İlk düşündüğüm tersi, tarayıcı minimuma indirilmemeli ve sayfa yüklendikten sonra 3 kere kesilmese bile (işlev olarak adlandırılırsa) bu olur.
    3. Çerez silinmiyor, ancak çerez içeriği :

      0123: enter image description here
    4. Bu asp.net web uygulaması konsol
    5. sorgunun sürüm 2.1.3
    6. olduğunu jquery çağrı kodu İzliyor herhangi hataları verir vermez

    7. olduğunu
      makeAjaxCall(ajaxData) { 
      var localData = ajaxData.data ? ajaxData.data : {}, 
          urlVariables = {}; 
      
      localData.cmd = ajaxData.cmd; 
      
      var controlerURL = ajaxData.uploadUrl ? HelperJSViewBag.getValue("ajaxCAllUploadURL") : ajaxData.controller; 
      
      if (typeof ajaxData.data.urlVariables == "undefined") 
          ajaxData.data.urlVariables = []; 
      
      let editorVersion = ""; 
      let forceEditorVersion = ""; 
      
      if (typeof UrlParameters != "undefined") { 
          editorVersion = UrlParameters.getInstance().editorVersion; 
          forceEditorVersion = UrlParameters.getInstance().forceEditorVersion; 
      } 
      else if (typeof HLinks != "undefined") { 
          editorVersion = HLinks.getUrlVariable("editorVersion"); 
          forceEditorVersion = HLinks.getUrlVariable("forceEditorVersion"); 
      } 
      
      if (editorVersion.length > 0) 
          ajaxData.data.urlVariables.push({ 
           name: "editorVersion", 
           value: editorVersion, 
          }); 
      
      if (forceEditorVersion.length > 0) 
          ajaxData.data.urlVariables.push({ 
           name: "forceEditorVersion", 
           value: forceEditorVersion, 
          }); 
      
      if (typeof ajaxData.data.urlVariables != "undefined" && ajaxData.data.urlVariables.length > 0) 
          for (var i = 0; i < ajaxData.data.urlVariables.length; i++) 
           urlVariables[ajaxData.data.urlVariables[i].name] = ajaxData.data.urlVariables[i].value; 
      
      localData = this.fillLocalData(localData); 
      
      return $.ajax({ 
          type: 'POST', 
          data: localData, 
          url: controlerURL + "?" + $.param(urlVariables), 
          success: function (data) { 
           try { 
            var result = JSON.parse(data), 
             status = result.status; 
      
            delete result.status 
            switch (status) { 
             case 1: ajaxData.sucess && ajaxData.sucess(result.data); break; 
             case 2: ajaxData.insucess && ajaxData.insucess(ajaxData.errorHandler && ajaxData.errorHandler.handle && ajaxData.errorHandler.handle(result)); break; 
            } 
           } 
           catch (ex) { 
            ajaxData.insucess && ajaxData.insucess(ajaxData.errorHandler && ajaxData.errorHandler.handle && ajaxData.errorHandler.handle(ex)); 
           } 
          }, 
          error: function (data) { 
           ajaxData.insucess && ajaxData.insucess(ajaxData.errorHandler && ajaxData.errorHandler.handle && ajaxData.errorHandler.handle(data)); 
          } 
      }); 
      } 
      
  • +2

    Ağ sekmesini etkinleştirip tarayıcıyı küçültebilir misiniz? Ayrıca zaman baskısı ile console.log koymak, bu yüzden neler olduğunu biliyorsunuz, oturum zaman aşımına uğradı mı, yoksa çağrı yapılmadı mı? SetTimeout veya setInterval kullandığınızı varsayalım? Durum ne olursa olsun, –

    +0

    'u en aza indirdikten sonra günlüğe kaydetme ve kontrol konsolu ekleyin. Bu, çizimlerle ilgili olduğundan, sanırım en aza indirildiğinde ekranın okunmasında bir sorun olabilir mi? Ajax çağrısını yapmadan önce çerezi silerseniz, ajax çağrısında bir hata, çerezin silinmesine neden olabilir? – cytsunny

    +0

    Tanımlama bilgisini oluşturmak için hangi kodu kullanıyorsunuz? Bu olduğunda herhangi bir konsol hatasıyla karşılaşır mısınız? Test için hangi sürümü Chrome ve FF kullanıyorsunuz? – Twisty

    cevap

    0

    Ben ASP kodunuzu görmek istiyorum.NET tarafı, ancak bu olmadan, sadece tahmin edebilirim: belki bir çerez son kullanma tarihi ayarlayıp ayarlamadığınızı kontrol edin?

    Dim myCookie As HttpCookie = New HttpCookie("Customer") 
    myCookie.Expires = Now.AddDays(1) 
    Response.Cookies.Add(myCookie) 
    

    Eğer myCookie.Expires özelliği atlarsanız, çerez, "kullanıcı oturum sona erdiğinde sona erecek" ref: Burada 1 gün son kullanma oluşturulan bir çerez bir örnektir. (Çerezleri oluştururken nerede kodunda) https://msdn.microsoft.com/en-us/library/78c837bd.aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1

    0
    1. Eğer Çerezler son kullanım süresini artırabilir.

    2. Değeri tutmak için Cookies yerine localStorage kodunuzda kullanabilirsiniz.

    değerini ayarlamak için examlpe localStorage.setItem için

    ve localStorage.getItem yerel depolama değeri elde etmek.

    İlgili konular