编辑:所以我更改了我的代码,以便我自己处理base64编码,这可能是必要的。
现在我遇到了一个新问题。我收到的CORS预检错误如下:
Fetch API cannot load http://flightxml.flightaware.com/json/FlightXML2/FlightInfo. Request header field authorization is not allowed by Access-Control-Allow-Headers in preflight response.
如果我弄错了,请纠正我:这意味着服务器不允许"授权" HTTP请求中的标头(没有任何意义,因为文档明确告诉我对用户名和API密钥进行编码并将其作为auth标头传递)。
我看到有关此问题的其他帖子,但由于我没有构建服务器,我无法进入并进行允许auth标头的更改。
有什么新想法吗?非常感谢你!
原始帖子:
我正在构建一个与FlightAware API集成的React应用程序。
我制作了一个FlightAware组件来处理对API的HTTP请求。我想从一个简单的请求开始,以获取有关给定飞机飞行的信息。不幸的是,尽管通过州提供我的证书,我仍然会收到401未经授权的回复。
(我知道这不是最佳做法,我暂时只是为了让请求正常运行。)
知道我在这里做错了什么吗?这是请求的代码:
componentDidMount() {
var form = new FormData();
form.append('ident', this.state.flightnum);
form.append('howMany', '10');
form.append('offset', '0');
fetch('http://flightxml.flightaware.com/json/FlightXML2/FlightInfo', {
method: 'GET',
auth: {
user: this.state.user,
pass: this.state.key
},
data: form
})
.then(result => {
// do something...
});
}