Получение сообщения об ошибке 401 для запросов к API Apigee - PullRequest
0 голосов
/ 16 мая 2018

Я пытаюсь отправлять запросы API Apigee из службы Angular.Он работает с почтальоном, но я получаю 401 несанкционированную ошибку при выполнении запросов к API из моего кода Angular.

Вот код Angular, который я пытаюсь:

$http({
       url: "https://xxx_test.com/data?sdate=date",
       method: "GET",
       headers: {
               'apikey': 'XXXXXXXXXXXXXXXXX'                             
             },
     })

Thisэто ответ, который я получаю:

{"fault": {"faultstring": "Не удалось разрешить переменную ключа API request.header.apikey", "detail": {"errorcode":"steps.oauth.v2.FailedToResolveAPIKey"}}}

Ответы [ 2 ]

0 голосов
/ 24 мая 2018

Проблема была в конфигурации на стороне сервера. Мы используем apigee для нашего API, поэтому для CORS требуется некоторая настройка.

Вот настройки:

<FaultResponse>
        <Set>
            <StatusCode>200</StatusCode>
            <ReasonPhrase>CORS OK</ReasonPhrase>
            <Headers>
                <Header name="Access-Control-Allow-Methods">GET, POST, PUT, DELETE, PATCH</Header>
                <Header name="Access-Control-Allow-Origin">*</Header>
                <Header name="Access-Control-Allow-Headers">authorization,content-type,api-key</Header>
            </Headers>
            <Payload/>
            <!-- Remove default fault content. -->
        </Set>
    </FaultResponse>

Добавьте политику RaisFault в свой поток с условием.

<Condition>request.verb == "OPTIONS" AND request.header.origin != null AND request.header.Access-Control-Request-Method != null</Condition>
0 голосов
/ 16 мая 2018

Попробуйте таким образом. Также установите заголовок подтверждения.

var config = {headers:  {
        'apikey': 'XXXXXXXXX',
        'Accept': 'application/json;odata=verbose',
    }
};

$http.get("https://xxx_test.com/data?sdate=date", config);
...