我正在尝试向 Skyscanner 发出 cro 请求并获取一些信息。我已经研究了他们的文档,这是我需要做的:
- 使用 POST 请求进行会话,
- 然后得到一个响应头,
- 然后使用该网址发出 GET 请求,
- 获取航班数据。
所以基本上有 2 个 API 调用。
这是我的代码:
export function getFlights() {
const request = axios.post(
'http://partners.api.skyscanner.net/apiservices/pricing/v1.0/',
JSON.stringify({
"cabinclass": "Economy",
"country": "UK",
"currency": "GBP",
.
.
.
.
"apikey": "apikey"
}),
{
headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
})
.then(function (response) {
console.log(response.headers);
axios.get(response.headers.location + '?apiKey=apikey&stops=0&duration=360&includeCarriers=ba;u2;af').then(function(response) {
console.log(response)
})
})
.catch(function (error) {
console.log(error);
});
return {
type: GET_FLIGHT,
payload: request
};
}
所以我删除了一些查询参数并隐藏了api键。
我已经下载allow-control-allow-origin了 chrome 的扩展程序,并且我还更改了主机文件:C:\Windows\System32\drivers\etc\hosts,所以现在我正在通过测试域访问我的应用程序:http://testdomain.com:3000/
但是当我尝试获得结果时,出现以下错误:
POST http://partners.api.skyscanner.net/apiservices/pricing/v1.0/ 405(不允许的方法)
当我去NETWORK TAB并选择时XHR,我看到v1.0/ partners.api.skyscanner.net/apiservices/pricing哪个是红色的,在headers我可以看到的下面:
通用响应标头请求标头表单数据,其中有(似乎)带有我的参数的航班?
我不确定我做错了什么,但从文档和其他一切似乎我应该得到代码 200,这是为了成功,但我一直得到 405。有人可以向我解释我做错了什么吗?