Аутентификация Api тестового полета Amadeus с помощью Javascript Fetch

У меня возникли проблемы с тестированием Amadeus Flight-Offers Api. Аутентификация

Запрос на другой источник заблокирован: та же политика происхождения запрещает чтение удаленного ресурса по адресу https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=SYD&destinationLocationCode.=BKK&leaveDate=2021-02-01&returnDate=2021-02-05&adult=1&max=3. (Причина: заголовок «аутентификация» не разрешен в соответствии с заголовком «Access-Control-Allow-Headers» из ответа предварительной проверки CORS).

Это мой код

"use_strict";
function getPlane(){
    let url = "https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=SYD&destinationLocationCode=BKK&departureDate=2021-02-01&returnDate=2021-02-05&adults=1&max=3";
    fetch(url,{
        method:"GET",
        headers:{
            "Content-Type":"application/vnd.amadeus+json",
            "Authentication":"Bearer code here"
        },
        mode:"cors",
        catch:"default"
    }).then(function(response){
        if(response.ok){
            return response.json();
        }else{
            throw new Error(error);
        }
    }).then(function(data){
        console.log(data);
        //query data here
        document.getElementById("flight").insertAdjacentHTML('afterbegin',data.data[0].itineraries[0].segments[0].operating.carrierCode)
    }).catch(function(error){
        console.log(error);
    });
}

getPlane();

См. также:  Часть 2: Var vs Const vs Let
Понравилась статья? Поделиться с друзьями:
IT Шеф
Комментарии: 1
  1. Kwasi Kumi

    Вызовы API самообслуживания Amadeus должны содержать Authorization HTTP-заголовок со значением Bearer access_token с использованием сгенерированного вами токена доступа. В вашем коде вы добавляете Authentication вместо Authorization. Кроме того, Content-Type необходим только тогда, когда вы запрашиваете токен доступа. Дополнительную информацию см. В руководстве по авторизации.

        "use_strict";
        function getPlane(){
            let url = "https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=SYD&destinationLocationCode=BKK&departureDate=2021-02-01&returnDate=2021-02-05&adults=1&max=3";
            fetch(url,{
                method:"GET",
                headers:{
                "Authorization": "Bearer ACCESS_TOKEN_HERE",
                },
                mode:"cors",
                catch:"default"
            }).then(function(response){
                if(response.ok){
                    return response.json();
                }else{
                    throw new Error(error);
                }
            }).then(function(data){
                console.log(data);
                //query data here
                document.getElementById("flight").insertAdjacentHTML('afterbegin',data.data[0].itineraries[0].segments[0].operating.carrierCode)
            }).catch(function(error){
                console.log(error);
            });
        }
    
        getPlane();
    

    Спасибо ребята. По этой причине иногда нам нужен второй / третий глаз. Мне никогда не приходило в голову, что я на самом деле написал Authentication вместо Authorization, пока вы не указали на это. Теперь все работает нормально. Спасибо person Kwasi Kumi; 11.12.2020

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: