2015-04-12 7 views
0

Я разбираю данные JSON с некоторым кодом Javascript. Код отлично работает с одним JSON-адресом (см. Ниже), однако, когда я использую другой URL-адрес с тем же JSON, он не работает, то есть страница пуста, а не заполняется данными. Ниже приведены файлы JSON. Если вы откроете их бок о бок, вы увидите, что они идентичны. Рабочая: https://dl.dropboxusercontent.com/u/97584761/JSON/Grad%20Jobs%20Ireland/staff-academic.json не работает: http://appmakeit.com/directory/staff/staff-academic.json также работает, но менее структурированы: https://staff-academic.firebaseio.com/.jsonJavascript JSON Not Parsing

Я действительно хочу, чтобы получить JSON на appmakeit URL функционировать. Вот Javascript, который я использую для анализа этого JSON. Не могли бы вы рассказать мне, что мне нужно изменить с помощью Javascript для успешного анализа этого JSON.

$.ui.ready(function(){ 
    getData1("http://appmakeit.com/directory/staff/staff-academic.json"); 
}); 

function getData1(url) { 
    $.getJSON(url, function(data){ 
     var list_html = ""; 
     for(var i=0; i< data.staff1.length; i++){ 
      var id = data.staff1[i].id; 
      var fullname = data.staff1[i].fullname; 
      var position = data.staff1[i].position;    
      var location = data.staff1[i].location; 
      var phone = data.staff1[i].phone; 
      var email = data.staff1[i].email;    
      var photo = data.staff1[i].photo; 
      var profile = data.staff1[i].profile; 

      list_html += '<li2><a href="#'+id+'" class="icon user">&nbsp;'+ fullname +'</a></li2>'; 

      var panel_content = '<form><br><ul class="list inset" style="font-size: 16px;"><li2 class="divider">'+fullname+'</li2><br><div style="height:150px;width:100%;float:left;"><img src="'+photo+'" width="110" height="120" style="float:left; margin: 0px 10px -2px 8px; box-shadow: 1px 1px 8px #888888;"/><p><blockquote><strong>Position: </strong>'+position+'<br><br></div><strong><blockquote>&nbsp;&nbsp;Location: </strong>'+location+'</blockquote><br><br><strong><blockquote>&nbsp;&nbsp;Phone: </strong>'+phone+'</blockquote><br><br><strong><blockquote>&nbsp;&nbsp;Email: </strong>'+email+'</blockquote><br><br><center><a href="'+profile+'" target=”_blank” class="button block" style="float:right; width: 120px; background-color:#0065A3; color:#fff; border-width:.1em; border-color:#00ACEB; margin:0px 2px 0px 2px;">Profile</a><a href="mailto:'+email+'" target=”_blank” class="button block" style="float:right; width: 120px; background-color:#0065A3; color:#fff; border-width:.1em; border-color:#00ACEB; margin:0px 2px 0px 2px;">Email</a></center><br><br></blockquote></p></ul><br></form><br>'; 

      $.ui.addContentDiv(id, panel_content, "People"); 
     } 
     $("#dataList1").append(list_html); 
    }); 
} 
+2

Точно, что вы имеете в виду, когда говорите, что это «не работает»? Вы получаете ошибки в консоли? Неверные результаты? Что-то другое? – Pointy

+0

Страницы просто пусты. Извините, если я не понял – Kerbol

+3

Что говорит консоль JavaScript? Видите ли, что вы видите запрос в инструментах разработчика браузера? – Quentin

ответ

3

Я предполагаю, что вы пытаетесь сделать Cross-origin запрос, так что это не позволяет вам получить какие-либо данные.

XMLHttpRequest cannot load http://insights.hotjar.com/api/v1/client/sites/13981/visit-data?sv=3. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://jsfiddle.net' is therefore not allowed access. The response had HTTP status code 500. 

Они не позволяют внешний клиент, чтобы получить эти ресурсы, вы должны проверить CURL но это из AJAX назначения.

Вы можете создать API на вас бакэнду что curl и возвратить этот ресурс, но, во всяком случае, я не знаю, насколько это может быть «цениться» (или даже юридическое)

Отъезд fiddle

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