Cookie和单页应用程序配置

时间:2018-01-09 11:00:53

标签: angular cookies single-page-application

我有一个在localhost:4200上运行的角应用程序 我的API后端运行在localhost:8080

API后端提供了设置cookie的auth端点:

localhost:4200 - > localhost:8080 POST / auth?creds = mycreds 响应204 Set-Cookie:mycookie = myvalue;仅Http

以下来自localhost:4200到localhost:8080的XHR请求未将cookie传输到后端。我不明白为什么。

1 个答案:

答案 0 :(得分:0)

由于安全问题,Cookie从不在跨域传输。如果请求的域相同,则Cookie存储始终附加到请求。但您可以从浏览器获取Cookie并手动将其添加到响应中。使用以下代码:

postData(dataToBePosted) {
  return this.http.post("someurl", {header: new HttpHeaders("cookieName", this.getCookie("cookieName")});
}

private getCookie(cname) {
    var name = cname + "=";
    var decodedCookie = decodeURIComponent(document.cookie);
    var ca = decodedCookie.split(';');
    for(var i = 0; i <ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ') {
            c = c.substring(1);
        }
        if (c.indexOf(name) == 0) {
            return c.substring(name.length, c.length);
        }
    }
    return "";
}

希望它会有所帮助