$ cookieStore.get()在angularjs中返回undefined

jac*_*per 10 servicestack angularjs

我正在通过响应从服务器编写一个cookie,问题是当我尝试使用angularJs读取相同的cookie时$ cookieStore.get()总是返回'undefined',我已经使用chrome和开发人员工具调试了饼干在那里,

console.log($cookieStore.get("r"));
Run Code Online (Sandbox Code Playgroud)

$ cookieStore似乎注入并运行正常,我只是想知道为什么angularJs无法读取cookie.

r:未定义

在此输入图像描述

编辑:

我试过$ 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);
        }
Run Code Online (Sandbox Code Playgroud)

Jas*_*aat 7

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

在此输入图像描述

尝试使用$cookies,只需设置属性,值不编码(小提琴):

在此输入图像描述

    $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;
    };
Run Code Online (Sandbox Code Playgroud)


小智 6

是的@Pedro在.NET中是正确的,例如,在使用HttpCookie进行身份验证时,默认情况下属性HttpOnly为true,而在javscript中 - > document.cookie无法找到刚刚保存到浏览器的cookie.

通过在保存cookie时设置为false HttpOnly,它对我有用.