2013-02-23 3 views
0

У меня есть следующая проблема: я пытаюсь получить данные из googlemaps api v3 через ajax с помощью кода ниже. Он отлично работает в Chrome и Firefox, но не в IE. Что я делаю не так?Googlemaps Api v3 getJson не работает в IE

var lat; 
$.ajax({ 
url: "url", 
cache: false, 
dataType: "json", 
success: function(data) {  
lat = data.results[0].geometry.location.lat; 
}                         
}); 
+0

Пожалуйста, добавьте сообщение об ошибке, которое вы получаете из IE, а также версию, в которой эта версия происходит. –

ответ

0

Добавьте следующее событие в вашей Ajax вызова

success: function(data) { 
    lat = data.results[0].geometry.location.lat; 
    }, 
    error: function(xhr, status, error) { 
    alert(status); 
    } 

И дайте нам знать, что сообщение об ошибке вы получаете в IE, если таковые вообще.

EDIT - Похоже, вы пытаетесь выполнить кросс-доменный запрос? Если это так, попробуйте установить $.support.cors = true; перед запросом ajax.

скачивается из http://api.jquery.com/jQuery.support/

To enable cross-domain requests in environments that do not support cors yet but do allow cross-domain XHR requests (windows gadget, etc), set $.support.cors = true;

EDIT2 - Ill предположит, что вы работаете IE9, в этом случае вам нужно плагин для JQuery найти здесь: https://github.com/jaubourg/ajaxHooks/blob/master/src/xdr.js

Также см этого ответа на SO для более подробную информацию о том, зачем нужен плагин для IE9 (с корками): IE9 jQuery AJAX with CORS returns "Access is denied"

EDIT3 - Загрузите jQuery.XDomainRequest.js и включите его перед вызовом AJAX.

+0

Спасибо за вашу помощь. Ошибка, которую я получаю, - «Нет транспорта». – user1889382

+0

Я добавил $ .support.cors = true; Теперь я получаю новую ошибку: «Доступ запрещен». Я действительно не понимаю этого, он все еще хорошо работает как с Chrome, так и с FF. – user1889382

+0

Вы прочитали ссылки, которые я написал выше? Вам нужен опубликованный плагин, чтобы он работал в IE9. –

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