http - 如何在 Response header Angular2 中获取值

标签 http angular

我想在响应 header (Set-Cookie) 中获取 session token 。如何访问响应 header 中的值?

var headers = new Headers();
            headers.append('Content-Type', 'application/json');
            console.log('url',this.loginUrl)
            this.http.post(this.loginUrl,
                JSON.stringify({ "username": value.username, "password": value.password }),
                { headers: headers })
                .map((res: Response) => 
                    res.json())
                .subscribe((res) => {
                    console.log("res", res);
                    this.loading.hide();
                    if (res.message_code == "SUCCESS") {
                        this.nav.setRoot(HomePage, {
                            username: value.username,
                        });
                    } else {
                        let alert =  Alert.create({
                            title: "Sign In Error !",
                            subTitle: 'Please Check Username or Password.',
                            buttons: ['Ok']
                        });
                        this.nav.present(alert);
                    }
                }, err => {
                    this.loading.hide();
                    console.log('error', err);

                }); 

这是我的标题响应

enter image description here

最佳答案

问题是您将响应映射到它的 json 内容。可以从响应本身到达 header 。所以你需要删除 map 运算符:

this.http.post(this.loginUrl,
       JSON.stringify({ "username": value.username, "password": value.password }),
       { headers: headers })
        /*.map((res: Response) =>  // <--------------
                res.json())*/
       .subscribe((res) => {
         var payload = res.json();
         var headers = res.headers;

         var setCookieHeader = headers.get('Set-Cookie')
         (...)
       });

在访问响应 header 时要小心使用 CORS。看到这个问题:

关于http - 如何在 Response header Angular2 中获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36423388/

相关文章:

C++ Boost Asio 将请求发送到 HTTP | PHP

angular - 如何将 Angular 项目设置为另一个 Angular 项目的 package.json 中的依赖项

angular - 如何在 Angular 6/5/4 中没有父子关系的情况下将组件 A 之间的数据传递给组件 B

angular - 如何从表单组中禁用的表单控件中获取值?

html - 我可以使用 rel=canonical 的 "protocol free"URL 吗?

php - IIS7/PHP/Laravel 上的 PUT 和 DELETE

http - 如何将 url 参数(查询字符串)传递给 Angular 上的 HTTP 请求?

HTTP GET 请求在查询字符串中包含许多项目

angular - 如何对自定义组件进行 Angular 单元测试(实现 ControlValueAccessor 和继承的父表单控件)

javascript - Angular 2/Angular 4 - 无法读取在 newZoneAwarePromise 处定义的 authService 的属性