Мне нужно получить доступ к частному API (одному из API летной компании Air France), и для использования любого из их API мне нужен токен доступа.Так что в своем руководстве , они говорят, что нам нужно использовать этот cURL для получения токена:
$ curl https://www.klm.com/oauthcust/oauth/token -d 'grant_type=client_credentials' -u fakeKey:fakeSecret
TERMINAL
Когда я выполняю этоcURL в моем терминале и замените fakeKey
и fakeSecret
(которые я, к сожалению, не могу дать вам здесь) своим собственным, он работает хорошо, и я получил этот ответ (с правильным токеном вместо:
{
"access_token": <TOKEN>,
"token_type":"bearer",
"expires_in":3600
}
POSTMAN
Когда я делаю это в Почтальоне, вот что я заполняю:
- URL:
- Авторизация:
- тип: Basic Auth
- Имя пользователя: мой секретный логин
- Пароль: мой секретный пароль
- Заголовки:
- Авторизация: автоматически генерируется из моего имени пользователя и пароля
- Тип содержимого: application / x-www-form-urlencoded
- Body
- проверено x-www-form-urlencoded
- grant_type: client_credentials
Вот и все, когда я нажимаюна SEND
я получил му ответа и мой жетон.
FETCH / AXIOS / HTTPRequest
Так как я пока не так хорош в получении данных, я использовал https://kigiri.github.io/fetch/ для перевода из моего cURL в fetch
метод JS.Он возвращает мне этот код:
fetch("https://www.klm.com/oauthcust/oauth/token", {
body: "grant_type=client_credentials",
headers: {
Authorization: "Basic <HASH_COMPILED_FROM_USERNAME_PASSWORD>",
"Content-Type": "application/x-www-form-urlencoded"
},
method: "POST"
})
<HASH_COMPILED_FROM_USERNAME_PASSWORD>
точно такой же, как тот, который скомпилировал Почтальон.Таким образом, эта выборка кажется мне приемлемой, однако в Chrome она возвращает Response for preflight has invalid HTTP status code 503.
Opera возвращает мне Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin <MY_WEBSITE> is therefore not allowed access. The response had HTTP status code 503.
Однако кажется странным, что ошибка произошла с их сайта, я думаюэто больше того, что я пропустил в своем запросе на получение.У вас есть идея?
Спасибо!