2013-10-16 23 views
9

Yanıtla bir sunucudan bir tanımlama bilgisi yazıyorum ve sorun şu ki angularJs $ cookieStore.get() ifadesini kullanarak aynı çerezi okumaya çalıştığımda sorun yok) 'tanımsız,

console.log($cookieStore.get("r")); 

$ cookiestore

enjekte edilecek ve angularjs çerez okuyamaz neden Tamam, merak ediyorum çalışıyor görünüyor, krom kullanan geliştirici araçları ile debug ve çerez yoktur.

enter image description here

r: undefined

Düzenleme:

Ben $ kurabiye servisi ile çalıştı ve ben de tanımsız olsun.

public override object Logout(IServiceBase service, ServiceStack.ServiceInterface.Auth.Auth request) 
     { 
      var resp = service.RequestContext.Get<IHttpResponse>(); 
      resp.Cookies.AddCookie(new Cookie { Name = "r", Path = "/", Value = "from server", HttpOnly = false, Discard = false, Expires = DateTime.Now.AddHours(12) }); 
      return base.Logout(service, request); 
     } 

cevap

6

:

aşağıdaki Ben

ben Servis Stack ve kod kullanıyorum krom geliştirici araçları içinde çerez alıyorum, sorunsuz sunucu tarafında cookie göndermek Bence $cookieStore sadece kendi başına kullanılacak, başka bir yere ayarlanmış mıydı? Dokümanlar, çerezlere doğrudan erişim sağlamayan çerezler tarafından desteklenen bir anahtar/değer deposu sağladığını söylüyor. 'MyValue' öğesini 'jason' olarak ayarladığımda %22jason%22(fiddle) depolar. Bu, eğer isterseniz cookieStore bunları seri hale getirip serileştirirseniz, javascript nesnelerine değerler atayabileceğiniz anlamına gelir.

enter image description here

$cookies yerine sadece ayarlayabilirsiniz özelliklerini kullanmayı deneyin ve değerler (fiddle) kodlanmamış:

enter image description here

$scope.setValue = function() { 
     $cookieStore.put("myValue", $scope.value); 
    }; 

    $scope.getValue = function() { 
     $scope.value = $cookieStore.get('myValue'); 
    }; 

    $scope.setCookieValue = function() { 
     $cookies.otherValue = $scope.value; 
    }; 

    $scope.getCookieValue = function() { 
     $scope.value = $cookies.otherValue; 
    }; 
+0

** 'r' başka bir yere yerleştirilmiş miydi? **, evet sunucu tarafında ayarlandı - sadece ra değerine doğrudan erişime sahip olmak istiyorum, bunun yerine $ cookie'leri kullanmaya çalışacağım –

+0

$ cookies ['r'] ve $ cookies.r her iki durumda da undefined –

+0

konsolda 'document.cookie' gösterisi ne gösteriyor? –

6

Evet @Pedro için, sağ .NET içindedir Örneğin, HttpCookie ile bir kimlik doğrulaması yaparken varsayılan olarak HttpOnly özniteliği doğrudur ve javscript -> document.cookie tarayıcınıza kaydettiğiniz çerezleri bulamıyor.

Çerez kaydedilirken yanlış HttpOnly ayarlayarak benim için çalıştı.

+0

bilmek güzel! deneyimi paylaştığınız için teşekkürler –

+0

Bu bir yorum olmalı. 51 itibarı ile yorum yapabilmeniz gerekir. –