飞行前响应不会接受我的标题参数

时间:2018-01-09 19:17:24

标签: angular rest codeigniter cors

我使用CodeIgniter 3.0编写了一个REST API。我正在尝试使用服务中的Angular 2.0 Http模块调用此API。

无论何时我在请求中包含头参数,都会抛出此错误。

Request header field apikey is not allowed by Access-Control-Allow-Headers in preflight response.

以下是调用REST API的代码

 login(email, pass): Observable<any> {
    //url 
    let url = `${this.ApiAuthBase}/login`;

    //header params
    var headers = new Headers();
    headers.append('apikey', 'fruits');

    //body params 
    let userParams = new FormData();
    userParams.append('email', email);
    userParams.append('password', pass);

    //fire api request
    return this.http.post(url, userParams, {headers: headers}).map(res=>res.json())
  }

REST API配置允许CORS,apikey位于Allowed-Headers属性中。我必须从Angular 2传递一个标头参数。当从iOS或Node.JS连接API时,不会发生这个问题。有没有人遇到过这个问题?非常感谢所有帮助。

$config['check_cors']  = TRUE;

$config['allowed_cors_headers'] = [
  'Origin',
  'X-Requested-With',
  'Content-Type',
  'Accept',
  'Access-Control-Request-Method',
  'token',
  'apikey'
];
$config['allowed_cors_methods'] = [
  'GET',
  'POST',
  'OPTIONS',
  'PUT',
  'PATCH',
  'DELETE'
];
$config['allow_any_cors_domain'] = FALSE;
$config['allowed_cors_origins'] = ['*'];

干杯!

0 个答案:

没有答案