axios вызывая непреднамеренный запрос OPTIONS на ЗДЕСЬ Автозаполнение API - PullRequest
0 голосов
/ 02 февраля 2019

Я получаю ошибку предпечатной проверки 405. Метод не разрешен API HERE при запросе автозаполнения согласно документации.

ОБНОВЛЕНИЕ 2:

С тех пор я определил, что Axios добавляетмои заголовки аутентификации default.common от API-клиента моего приложения к HERE-API-клиенту.Предполагается, что Axios хранит эти значения по умолчанию отдельно для каждого клиента, но кажется, что это не так ... по крайней мере, не та версия, которая у меня есть.Я заменил значения по умолчанию перехватчиком запросов для каждого клиента, и он работал нормально.Запрос больше не запускает опцию перед полетом.Нет проблем с API HERE, за исключением того, что он не поддерживает метод OPTION.

UPDATE:

Причина, по которой он не работает, заключается в том, что HERE не поддерживает метод OPTIONS, только GET.Итак, теперь вопрос: почему axios вызывает запрос OPTIONS, когда я не устанавливаю никаких заголовков?GET-запрос на основе XMLHttpRequest () не запускает OPTIONS для того же URL-адреса.Что-то происходит с axios, но я не знаю, что, и я не могу исследовать заголовки, которые отправляет axios.

ОРИГИНАЛ:

Я пытался найти информацию об этомошибка, а также HTTP против HTTPS.Я не видел, чтобы у других была эта проблема, поэтому я чувствую, что, должно быть, делаю простую ошибку.URL генерируется правильно, потому что он работает, например, при вставке непосредственно в браузер.

const hereClient = axios.create({
  baseURL: 'https://autocomplete.geocoder.api.here.com/6.2/'
})

async function searchHere (query) {
  let searchTerms = query.split(' ').join('+')
  let result = await hereClient.get('suggest.json', {
    params: {
      app_id: '<APPID>',
      app_code: '<APPCODE>',
      query: searchTerms
    }
  })
  return processHereSearchResults(result.data)
}

Сбой запроса GET на предпечатной проверке OPTION с 405: Метод не разрешен.Но если я вставлю сгенерированный URL в браузер, он вернет ожидаемые результаты.Например: https://autocomplete.geocoder.api.here.com/6.2/suggest.json?app_id=APPID&app_code=APPCODE&query=8131

возвращает:

{"ideas": [{"label": "Česko, Brandýs nad Orlicí, 3123", "language": "cs", "countryCode ":" CZE "," locationId ":" N..

Тот же результат, будь то http или https.

1 Ответ

0 голосов
/ 06 февраля 2019

С тех пор я определил, что Axios добавляет мои заголовки аутентификации default.common из клиента API моего приложения в клиент HERE API.Предполагается, что Axios хранит эти значения по умолчанию отдельно для каждого клиента, но кажется, что это не так ... по крайней мере, не та версия, которая у меня есть.Я заменил настройку заголовка по умолчанию на перехватчик запросов для каждого клиента, чтобы установить мою аутентификацию, и она работала нормально.Запрос больше не запускает опцию перед полетом.Нет проблем с API HERE, кроме того, что он не поддерживает метод OPTION.

...