当我使用headers.append('授权',' Bearer' + this.AuthToken)时,我收到错误;

时间:2017-06-20 17:02:41

标签: php angular

  

当我隐藏授权标题时,它工作正常,但当我是   使用授权标题我得到错误.Below是我的角度2   代码:

  getinfo() {
        return new Promise(resolve => {
            var headers = new Headers();
            this.loadUserCredentials();
            console.log(this.AuthToken);
            headers.append('Authorization', 'Bearer ' +this.AuthToken);
            //headers.append('Content-Type', 'application/x-www-form-urlencoded');

            this.http.get('http://ip/ramu/api/index.php?action=getUserInfo', {headers: headers}).subscribe(data => {
                if(data.json().success)
                    resolve(data.json());
                else
                    resolve(false);
            });
        })
    }
  

后端我正在使用php。我在下面给出的php页面中使用了标题

header("access-control-allow-origin: *"); header('content-type:
application/json; charset=utf-8');
  

以下错误我正在

XMLHttpRequest cannot load http://ip/ramu/api/index.php?action=getUserInfo. Request header field Authorization is not allowed by Access-Control-Allow-Headers in preflight response.
  

我必须在后端做什么才能允许基于令牌或授权的授权   我需要添加任何角度代码吗?

2 个答案:

答案 0 :(得分:1)

大多数非标准标题需要在CORS飞行前响应中列入白名单(就像原点一样),所以在后端:

header("Access-Control-Allow-Origin: *"); 
header("Access-Control-Allow-Headers: Authorization"); 

答案 1 :(得分:0)

您可以发送此类标题以允许来源。

<?php
 header("Access-Control-Allow-Origin: *");
 header("Access-Control-Allow-Headers: *");
?>