离子服务人员发送GET选项

时间:2018-07-17 16:58:07

标签: javascript ionic-framework cors service-worker

我目前正在与Ionic一起从API获取数据。尽管最近几天一直在工作,但我不知道它是如何停止工作的。

我正在使用@angular/http发出请求。不使用任何标题时,我的请求将转到GET方法,并且由于我需要授权令牌而无法使用。

但是,如果我通过以下方式获得标题:

let headers = new Headers();
headers.append('Authorization', this.bearerToken);            
let options = new RequestOptions({ headers: headers });

它也不起作用。该请求转到OPTIONS方法,并返回:

Unauthorized header authorization

我可以在Ionic上做些什么来解决此问题,还是应该警告API开发人员以使其做出一些更改?

编辑:API开发人员正在使用Symfony和Nelmio CORS捆绑软件来处理这些设置

nelmio_cors:
   defaults:
       origin_regex: true
       allow_origin: ['%env(CORS_ALLOW_ORIGIN)%']
       allow_methods: ['GET', 'OPTIONS', 'POST', 'PUT', 'PATCH', 'DELETE']
       allow_headers: ['Content-Type', 'Authorization']
       max_age: 3600
   paths:
       '^/': ~

如@Moshe所提到的,它们的配置应包含一些Access-Control-Allow-Headers,并且显然可以。.

1 个答案:

答案 0 :(得分:1)

当涉及到HTTP标头(例如授权)时,客户端发送一个OPTIONS请求,以检查标头是否首先被服务器接受。我的客户-服务器关系也遇到了类似的问题。您必须在服务器的Access-Control-Allow-Header中启用授权。

示例:

header('Access-Control-Allow-Headers: Content-Type, Authorization');