@mistergalynsky

Как в переменную поместить json?

Всем доброго времени суток. Мне нужно подгрузить данные json в infoWindow.
function initialize() {
					var myLatlng = new google.maps.LatLng(-25.363882,131.044922);
					var mapOptions = {
						zoom: 4,
						center: myLatlng
					};
					
					var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
					
					var jsonData = $.ajax({
						url: "http://api.openweathermap.org/data/2.5/find?q=Novosibirsk&units=metric&lang=ru",
						dataType:"json",
						async: false
					});
					console.log(jsonData.message);
					
					var contentString = '<div id="content">'+
						'<div id="siteNotice">'+
						'</div>'+
						'<h1 id="firstHeading" class="firstHeading">Uluru</h1>'+
						'<div id="bodyContent">'+
						'<p>'+ jsonData.message +'</p>'+
						'<p>Attribution: Uluru, <a href="http://en.wikipedia.org/w/index.php?title=Uluru&oldid=297882194">'+
						'http://en.wikipedia.org/w/index.php?title=Uluru</a> '+
						'(last visited June 22, 2009).</p>'+
						'</div>'+
						'</div>';

					var infowindow = new google.maps.InfoWindow({
						content: contentString
					});

					var marker = new google.maps.Marker({
						position: myLatlng,
						map: map,
						title: 'Uluru (Ayers Rock)'
					});
					
					google.maps.event.addListener(marker, 'click', function() {
						infowindow.open(map,marker);
					});
				}
			
				google.maps.event.addDomListener(window, 'load', initialize);

Не получается вывести значение. Пишет - undefined. Заранее благодарен.
  • Вопрос задан
  • 2704 просмотра
Решения вопроса 1
Ashot
@Ashot
Во-первых, $.ajax — асинхронная функция, во-вторых, она возвращает Promise. Это очень краткая матчасть.

$.ajax({
	url: "http://api.openweathermap.org/data/2.5/find?q=Novosibirsk&units=metric&lang=ru",
	dataType:"json",
	async: false
}).done(function(jsonData) {
	var data = $.parseJSON(jsonData);
	// делайте всё что надо с data
} )
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
webinside
@webinside
AJAX запросы без обработки не будут работать с чужими доменами, ищите "ajax cross domain"
Ответ написан
@YemSalat
Разберитесь как работает ajax.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы