2013-02-07 4 views
0

Je n'arrive pas à faire fonctionner mon lecteur jquery json. Je suis en utilisant le code suivant (adapté de l'exemple flickr sur la documentation jquery):jquery getJSON() ne fonctionne pas

<!DOCTYPE html> 
<html> 
<head> 
<title>Test</title> 
<meta name="viewport" content="width=device-width, initial-scale=1.0"> 
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.css" /> 
<script src="http://code.jquery.com/jquery-1.8.2.min.js"></script> 
<script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script> 

</head> 
<body> 
<div data-role="page" id="ScheduleDay"> 
    <div data-role="header"> 
     <a href="#HomePage" data-icon="home" data-direction="reverse">Home</a>  
     <h1 id="ScheduleDayText">Schedule</h1> 
    </div> 
    <div data-role="content"> 
     <ul data-role="listview" id="ScheduleList" data-autodividers="true"> 
     </ul> 
    </div> 
</div> 
<script> 
$(document).on("pageinit", "#ScheduleDay", function(){ 
    $.getJSON("http://oregonffa.com/EventMaster/WebService/ScheduleEvents.php", 
    function(data){ 
     $.each(data, function(i,item){ 
      $("ul#ScheduleList").append('<li time="' + item.StartTime + '"><a href="javascript:viewScheduleEvent(' + item.ScheduleID + ')">' + item.Name + '</a></li>'); 
     }); 
     $("ul#ScheduleList:visible").listview('refresh'); 
    }); 
}); 
</script> 
</body> 
</html> 

Il ne semble pas lire le flux JSON correctement. J'ai créé un jsfidle pour montrer ce qui se passe.

Je suis sûr que, comme d'habitude, j'ai oublié quelque chose dans le code, mais je ne peux pas comprendre pour la vie de moi où/quoi.

EDIT: Je dois préciser que la source json analyse correctement. Voici un exemple:

[{"ScheduleID":"1","StartTime":"3:30 PM","Name":"Registration Opens"},{"ScheduleID":"2","StartTime":"3:30 PM","Name":"State Creed Speaking Order Drawing"},{"ScheduleID":"3","StartTime":"4:30 PM","Name":"State Creed Public Speaking"},{"ScheduleID":"4","StartTime":"7:00 PM","Name":"Opening Session"}] 
+0

Ce violon montre: XMLHttpRequest ne peut pas charger http://oregonffa.com/EventMaster/WebService/ScheduleEvents.php. L'origine de http://fiddle.jshell.net n'est pas autorisée par Access-Control-Allow-Origin. En bref, vous ne pouvez pas obtenir cette ressource car elle n'est pas dans le même domaine que la page qui la demande. –

Répondre

1

Vous ne pouvez pas obtenir JSON d'un autre hôte pour cela, vous devez utiliser JSONP dans jQuery

dans votre exemple montrant la console erreur suivante

XMLHttpRequest ne peut pas charger http://oregonffa.com/EventMaster/WebService/ScheduleEvents.php. Origine http://fiddle.jshell.net n'est pas autorisé par Access-Control-Allow-Origin.

Vous pouvez utiliser this article à lire sur JSONP, mais si vous le pouvez; t modifier ce service, vous pouvez utiliser une page proxy dans votre site web,

+0

Merci. Avec un peu plus de googleing, j'ai trouvé [ce post] (http://stackoverflow.com/questions/3506208/jquery-ajax-cross-domain) qui m'a aidé à corriger mon flux json pour permettre la publication de plusieurs domaines. – scholzr

Questions connexes