【问题标题】:How to set header cookie with angular 2如何使用角度 2 设置标题 cookie
【发布时间】:2017-06-12 03:07:02
【问题描述】:

夜晚。

当我想向服务器发送 cookie 时出现了这个问题。 这个想法是检查用户是否登录。

这是代码

isLogin(): Promise<any> {
    let headers = new Headers;
    headers.append('Cookies', 'autologin=abcdef;'); //this the set cookie. but not set when i check in mozilla network tap

    return this.http.get(this.BASEURL + 'api/authentication/check', { headers: headers })
        .toPromise()
        .then(res => {
            console.log(res);
        })
        .catch(err => console.log(err));
}

这是请求标头。

Host: localhost:8080
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Access-Control-Request-Method: GET
Access-Control-Request-Headers: set-cookie
Origin: http://localhost:8100

此服务器代码

public function check()
    {
        if ($this->auth->loggedin())
        {
            $this->output
                ->set_status_header(200)
                ->set_content_type('application/json')
                ->set_output(json_encode($this->session->userdata()));
        } else {
            $this->output
                ->set_status_header(400)
                ->set_content_type('application/json')
                ->set_output(json_encode(['status' => FALSE]));
        }
    }

看到了吗?请求中没有 cookie。帮我。这个卡住让我头疼.. XD

【问题讨论】:

    标签: angular cookies request ionic2 setcookie


    【解决方案1】:

    RequestOptions 对象中添加Header 对象。

    isLogin(): Promise<any> {
        let headers = new Headers;
        headers.append('Cookies', 'autologin=abcdef;'); //this the set cookie. but not set when i check in mozilla network tap
    
        let options = new RequestOptions({headers: headers});
    
        return this.http.get(this.BASEURL + 'api/authentication/check', options)
            .toPromise()
            .then(res => {
                console.log(res);
            })
            .catch(err => console.log(err));
    }
    

    这应该可行,尽管您并没有真正返回承诺,因为您已经解决了它(我认为) .

    请求选项的导入:import { RequestOptions } from '@angular/http';

    【讨论】:

    • 无效。来自服务器的响应只是 json。和饼干。
      请求头与第一个相同,仍然不包含cookies
    • 嗯好吧,如果您将Cookies 的名称更改为例如'Test-Header',您能看到它还是不显示?
    • 我尝试过但什么也没得到,仅供参考,我在控制台上收到此错误:Cross-Origin Request Blocked: .... 这是无法设置请求 cookie 的问题吗?
    • 这是一个 CORS 错误,意味着您调用的 api 不支持像您的本地主机这样的跨源请求。是自己的api还是别人的?
    • 这是我从 PHP CI 3 创建并使用 php-auth cooke 库的 api。和 Ionic2 框架。我使用安装了 php 5.6 的 Xampp。
    猜你喜欢
    • 2018-09-30
    • 2018-07-11
    • 1970-01-01
    • 2020-05-28
    • 2014-12-25
    • 2018-06-18
    • 1970-01-01
    • 2020-04-23
    • 2014-04-29
    相关资源
    最近更新 更多