Специфично для Firefox - отсутствует токен 'user-agent' в заголовке CORS 'Access-Control-Allow-Headers' из канала предварительной проверки CORS - PullRequest
0 голосов
/ 21 ноября 2018

Я пытаюсь сделать вызов API для геокода googleMapsClient и получаю ошибку XHR только при использовании firefox.Он отлично работает в Chrome, но в Firefox я получаю следующую ошибку

>     Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at
> https://maps.googleapis.com/maps/api/geocode/json?address=Kothaguda%2C%20Hyderabad%2C%20Telangana%2C%20India&key=AIzaSyB3eaJ_PQV1JPDiYAppYjlhTNQKBKmwn2U.
> (Reason: missing token ‘user-agent’ in CORS header
> ‘Access-Control-Allow-Headers’ from CORS preflight channel)

Не уверен, почему это относится к Firefox.Я вижу, что в запросе есть http-заголовок 'user-agent'.Любая помощь по этому вопросу высоко ценится.

Ответы [ 2 ]

0 голосов
/ 27 января 2019

Только что закончили с этим точно таким же вопросом.Я использовал библиотеку @google/maps, и геокодирование работало нормально в Chrome (v71), но предварительная проверка завершилась неудачно в Firefox (v64) с той же ошибкой, что и исходный вопрос.

Как и предположил Роб, я закончилперейти к использованию Google Maps JavaScript API для выполнения геокодирования.

Если посмотреть на детали каждого запроса ... кажется, что пакет @google/maps npm использует другой URL-адрес, чемGoogle Maps JavaScript API.На самом деле ... URL-адрес, используемый JavaScript API, возвращает структуру JSONP и избегает совместной работы со всем CORS.

Для меня до сих пор загадка, почему использование @google/maps для геокодирования адреса работало нормально в Chrome, а не в Firefox.Я предполагаю, что Firefox предъявляет более строгие требования к CORS по сравнению с Chrome.

0 голосов
/ 10 января 2019

Используете ли вы пакет @google/maps?Обратите внимание, что этот пакет должен использоваться только с node.js, а не в браузере.Об этом также говорится в README :

Внимание!Эта библиотека предназначена для серверных приложений Node.js.Попытка использовать его на стороне клиента в браузере или в любой другой среде, такой как React Native, может в некоторых случаях работать, но в большинстве случаев не работает.Не пытайтесь сообщать о проблемах в этих средах при попытке их использования, поскольку серверные приложения Node.js являются единственной поддерживаемой средой для этой библиотеки.В других средах попробуйте API JavaScript Карт, который содержит сопоставимый набор будущих функций и явно предназначен для использования с клиентским JavaScript.

Я предлагаю использовать JavaScript API Карт Google.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...