Я пытаюсь получить direction_in_traffic
, который не возвращается с использованием обычных направлений api. Я обнаружил, что есть поле в distancematrix
api, которое делает именно это.Google DistanceMatrix API
Этот код работает, когда я запускаю его из моей машины, но как только он-лайн, я вижу ошибки, связанные Access-Control-Allow-Origin
var durationInTraffic = function(from, to, mode, callback) {
var key = 'API-KEY';
var address = 'https://maps.googleapis.com/maps/api/distancematrix/json?origins=' + from + '&destinations=' + to + '&key='+ key +'&travelmode=' + mode + '&departure_time=now';
var req = new XMLHttpRequest();
req.addEventListener('load', function(){
if (typeof callback === 'function') {
callback(JSON.parse(this.responseText).rows[0].elements[0].duration_in_traffic.value);
}
});
req.open('GET',address);
req.setRequestHeader('Access-Control-Allow-Origin','https://haroen.me');
req.setRequestHeader('Access-Control-Allow-Headers','X-Requested-With');
req.send();
};
Я создал ключ, но на вкладке domain verification
кажется " забыть ", что добавили я добавил.
jsbin (что, очевидно, не будет работать, так как этот ключ не разрешен в этом домене, но я получаю ту же ошибку в своем собственном домене).
Полный код, который я пытаюсь это на виден на https://github.com/haroenv/maps-checker
Спасибо за вашу помощь!
Может захотеть скрыть ваш ключ API, если он связан с вашей фактической учетной записью Google Dev. – Vlad
Спасибо, не подумал об этом –
, возможно, вы захотите изменить свой ключ, множество сайтов сосать SO сообщений/ревизий (как нажимает «editied ... назад» делает). Кроме того, вы не должны устанавливать заголовки CORS из клиентской JS, это заголовки ответов сервера. – dandavis