2016-07-19 1 views
1

Im в настоящее время тестирует API Uber, и я не смог получить какие-либо результаты, так как мой webapp получает «Access-Control-Allow-Origin "выпуск:Работает ли Uber API с локальной средой? Получение доступа-контроль-разрешить-возникновение проблемы на моем https: // localhost

XMLHttpRequest не может загрузить https://api.uber.com/v1/estimates/price. В запрошенном ресурсе нет заголовка «Access-Control-Allow-Origin». Происхождение 'https://localhost' поэтому не допускается. Ответ был HTTP код статуса 422.

Я установил уже происхождение URI: https://localhost

Но ошибка Access-Control-Allow-Origin продолжает прибывать. Я попытаюсь воссоздать приложение на стороне Uber, но его вид странный, что он не работает так, как он предполагал.

+0

Воспроизведение приложения не работает.Кажется, у них есть некоторые проблемы на их стороне, так как удаление или создание новых токенов сервера также не работает: Не удалось удалить токен, повторите попытку позже <- – WilliamX

ответ

0

Вы должны установить http://localhost:{PORT NUMBER} как разрешенный исходный URI на вкладке Авторизация панели разработчика. Вы захотите обновить этот URI в зависимости от того, что вы в конечном итоге используете в процессе производства.

Смотрите документацию для CORS: https://developer.uber.com/docs/rides/api-reference

+0

Это решает только для процесса OAuth 2.0. Регулярное GET (без пользовательского охвата) все еще поражает CORS – Aviad

0

Спасибо за ваш Msg 7imon7ays, он также работает без порта.

Оказывается, я перепутался с объектами LatLng. Как я понял, это было, это: С "https://api.uber.com/v1/estimates/price" является GET я тестировал этот адрес в браузере:

"https://api.uber.com/v1/estimates/price?start_latitude=37.625732&start_longitude=-122.377807&end_latitude=37.785114&end_longitude=-122.406677&server_token=xxxxxxx"

(замените XXXXXX с вашим server_token) ...

И это сработало !, Я смог увидеть результат, как ожидалось, поэтому копая глубже, я добавил console.log (uberParams) < - в мой uberParams, и получается, что все они, но ключ не определены:

Это то, что я использовал: (Неправильно)

var uberParams = { 
      start_latitude : origin.latitude, 
      start_longitude : origin.longitude, 
      end_latitude: destination.latitude, 
      end_longitude: destination.longitude, 
      server_token:"xxxxxxx" 
     } 

Место происхождения и назначения - оба объекта google.maps.LatLng. Итак, для API, я неправильно посылаю это:

 { 
      start_latitude : undefined, 
      start_longitude : undefined, 
      end_latitude: undefined, 
      end_longitude: undefined, 
      server_token:"xxxxxxx" 
     } 

И убер Апи, возвращается сообщение об ошибке: -> Access-Control-Allow-Origin

Это вызвало путаницу, поскольку origin_uri не было проблемой, как только я изменил параметры к этому:

var uberParams = { 
      start_latitude : origin.lat(), 
      start_longitude : origin.lng(), 
      end_latitude: destination.lat(), 
      end_longitude: destination.lng(), 
      server_token:"xxxxxxx" 
     } 

Все работало, как ожидалось. Обратите внимание на мои Uber друзей: «Великий API, плохая обработка ошибок и описания ...»

Смежные вопросы