2013-10-01 5 views
0

Я не пытаюсь добавить фотографии flickr на свою веб-страницу. Я пытаюсь получить значения широты и долготы от вызова json.получить значение от json callback

Это код, который у меня есть до сих пор. Ничего не происходит, когда я загружаю его в свой браузер.

<!DOCTYPE html> 
<html> 
<head> 
<title>Flickr Pie Chart</title> 
<meta charset="utf-8"> 
<script type="text/javascript" src="/jquery/jquery-1.3.2.min.js"></script> 

<script type="text/javascript"> 
    $(document).ready(function(){ 
     $("#driver").click(function(event){ 
      var apiKey = '[YOUR API KEY]'; 
      var url = 'http://api.flickr.com/services/rest/&method=flickr.photos.search&api_key=' + apiKey +'&per_page=500&tags=losangeles&has_geo=1&extras=geo,tags&format=json&jsoncallback=?'; 

      $.getJSON(url, function(data){ 
       //loop through the results with the following function 
       $.each(data.items, function(i,item){ 
        var geoData +='latitude:' item.latitude + '' + '<br>'; 
        geoData += '' + item.longitude; 
        $('#results').append(geoData); 
       }); 
      }); 
     }); 
    }); 
</script> 
</head> 

<body> 
    <div id = "results"></div> 
    <input type="button" id="driver" value="Load Data" /> 
</body> 
</html> 
+0

вы связывание события щелчка, но он не появляется ваш код в Jquery готового обработчика. это то, что ваш код на самом деле выглядит в исходном коде страницы? – kinakuta

+0

Nevermind, я вижу, вы редактировали ваше сообщение. – kinakuta

+2

'' + API KEY + ''Я думаю, вы должны поместить в свою переменную' apiKey', и вы, вероятно, должны .. вы знаете .. есть ключ API. –

ответ

0

Это

http://api.flickr.com/services/rest/&method=flickr.photos.search&api_key= 

Должно быть

http://api.flickr.com/services/rest/?method=flickr.photos.search&api_key= 

Но ответ Вы получаете

<rsp stat="fail"><err code="3" msg="Parameterless searches have been disabled. Please use flickr.photos.getRecent instead."/> 

Который говорит вам использовать flickr.photos.getRecent

+0

flickr.photos.getRecent - это не тот метод, который я хочу, потому что он не извлекает геоданные. Мне нужно использовать метод flickr.photos.search –

+0

Также изменение метода & method на? Ничего не делало. Когда я загружаю html-файл в свой браузер, он по-прежнему не отвечает. –

0

Я получил его работу. Одна из проблем заключается в том, что у меня был jsoncallback =? который возвращал jsonp-файл с синтаксической ошибкой, он не возвращал json. Я нашел ошибку на сайте jsonlint.com. ... Ошибка была jsonFlickrApi ({в начале файла я добавил & nojsoncallback = 1 после форматирования & = JSON и все работало нормально, я также объявил свою переменную GEODATA перед присвоением значений

Вот код:

<!DOCTYPE html> 
<html> 
<head> 
<title>Flickr Pie Chart</title> 
<meta charset="utf-8"> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"> 
</script> 

<script type="text/javascript"> 

var latitude; 
var longitude; 

var geoData; 


$(document).ready(function(){ 

    var apiKey = '[YOUR API KEY]'; 
    var url = 'http://api.flickr.com/services/rest/?&method=flickr.photos.search&api_key='+ apiKey + '&tags=losangeles&has_geo=1&extras=geo,tags&format=json&nojsoncallback=1'; 

$.getJSON(url, function(data){ 

//loop through the results with the following function 
$.each(data.photos.photo, function(i,item){ 

    geoData += 'latitude' + ':' + item.latitude + '' + '<br>'; 
    geoData += 'longitude' + ':' + item.longitude; 

$('#results').append(geoData); 


}); 

}); 

}); 

</script> 
</head> 

<body> 

<div id = "results"></div> 
</body> 

</html> 
Смежные вопросы