Попытка получить результат работы отлично работает в Почтальоне, но использование AJAX в браузере запрашивает app_code и app_id - PullRequest
2 голосов
/ 08 января 2020

Я пытаюсь использовать ЗДЕСЬ API REST для получения результатов моей работы. Я протестировал мой запрос GET в Postman, и он отлично работал, используя мой apiKey, без использования дополнительных заголовков (кроме Content-Type: application / octet-stream).

Postman Request

Но когда я пытаюсь попробовать тот же запрос, используя AJAX с jQuery, я получаю ответ 400, говорящий мне, что мне нужны app_id и app_code. Мой код:

    $.ajax({
        async: false,
        contentType: "application/octet-stream",
        type: 'GET',
        url: "https://batch.geocoder.ls.hereapi.com/6.2/jobs/{JOB_ID}/result?apiKey={API_KEY}",
    }).done(function (result) {
        console.log(result);
    });

Заголовок возврата:

{"error":"Bad Request","error_description":"The request is missing the app_id and app_code parameters. They must both be passed as query parameters. If you do not have app_id and app_code, please obtain them through your customer representative or at http://developer.here.com/myapps."}

Использование этой обычной ссылки работает, когда она помещается в строку URL. в моем браузере.

Использование комбинации идентификатора приложения на странице https://developer.here.com/projects/ в разделе REST и apikey в качестве api_code также не работает. Это говорит мне о том, что это недопустимая пара.

Я понятия не имею, какие учетные данные я должен сейчас использовать.

Спасибо за помощь заранее!

1 Ответ

0 голосов
/ 09 января 2020

Согласно документации для аутентификации необходимо использовать apikey. Пожалуйста, проверьте этот код для ajax, который работает нормально.

<html>
<button type="button" class="btn">Click me!</button>
<p class="text">Replace me!!</p>
<script src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
<script>
$('.btn').click(function() {

  $('.text').text('loading . . ');

  $.ajax({
  type:"GET", 
 url:"https://batch.geocoder.ls.hereapi.com/6.2/jobs/CxnGVvxLZeCjJnGRD0udKgLgeQzNa5xq/result?apiKey={apikey}",
    success: function(result) {
      $('.text').text(JSON.stringify(result));
      console.log(result);
    },

  });

  });
 </script>
 </html>

Надеюсь, это поможет.

...