【发布时间】:2018-07-18 17:07:49
【问题描述】:
我目前正在使用 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 Bundle 来处理这些设置
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,而且他们显然这样做了..
【问题讨论】:
-
你能分享一下你的http请求实现吗?
-
你是说这个?
const data = this.http.get(dataUrl, options).map(data => data.json()); -
基本上,您需要让 API 开发人员向您提供他们希望您如何从他们那里查询数据的详细信息。就像端点描述(什么参数,他们期望什么标题) - 然后你可以基于它构建你的实现。如果您可以用他们的回答更新问题 - 我可以帮助您实施
标签: javascript ionic-framework cors service-worker