我正在通过响应从服务器写入cookie,这很好,问题是当我尝试使用angularJs读取相同的cookie时,$ cookieStore.get()总是返回“未定义”,我已经使用chrome和 cookies 在那里

console.log($cookieStore.get("r"));
$ cookieStore似乎已经注入(inject)并且可以正常运行,我只是想知道为什么angularJs无法读取cookie。

编辑:
我尝试使用$ cookies服务,但也无法定义。
我在服务器端毫无问题地发送了cookie,我在chrome开发人员工具中获取了cookie
我正在使用服务堆栈,代码如下:
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);
        }

最佳答案

我认为 $cookieStore 只能单独使用,是否在其他地方设置了“r”?文档说它提供由cookie支持的键/值存储,而不是直接访问cookie。当我将'myValue'设置为'jason'时,它将存储%22jason%22 (fiddle)。这意味着您可以根据需要为javascript对象设置值,并且cookieStore会为您序列化和反序列化它们。

尝试使用 $cookies 代替,您可以在其中仅设置属性,并且值未编码(fiddle):

    $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;
    };

关于angularjs - $ cookieStore.get()在angularjs中返回未定义,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19395445/

10-12 05:08