2012-04-28 3 views

Répondre

2

Vous êtes victime du same-origin policy. Le navigateur bloquera par défaut JSON qui est récupéré pour plusieurs raisons de sécurité. Si vous devez obtenir des données entre domaines, vous devrez implémenter un proxy côté serveur ou utiliser JSONP si les données sont également fournies dans ce format. Si la source ne fournit pas de données dans JSONP, je crois que vous pourriez utiliser YQL pour le convertir.

ressources sur JSONP: http://www.ibm.com/developerworks/library/wa-aj-jsonp1/

Mise à jour: Votre URL sera appelé comme ceci:

​$(function(){ 
    var url = "https://api.songkick.com/api/3.0/artists/253846/calendar.json?apikey=HlgKnFaq9qYO1h9T&jsoncallback=?"; 
    $.getJSON(url, function(data){ 
    // Do what you want to do with the return data within this callback 
    console.log(data);   
    }); 
});​ 

Mise à jour 2:

J'ai mis à jour votre JSFiddle travailler avec getJSON() . J'ai également pris la liberté de faire quelques autres changements:

  1. J'ai modifié comment vous avez défini votre tableau de noms de mois, pour le rendre plus lisible.
  2. .getDay() en JavaScript est utilisé pour retourner le jour de la semaine (0 = dimanche, 1 = lundi et ainsi de suite), comme je crois que vous voulez le jour du mois, vous devez utiliser .getDate() à la place. Voir mon JSFiddle.
+0

Merci d'avoir répondu si rapidement, j'ai lu à ce sujet sur le site Web de Songkicks (http://www.songkick.com/developer/upcoming-events-for-artist). Est-ce que cette URL serait appropriée (https://api.songkick.com/api/3.0/artists/253846/calendar.json?apikey=HlgKnFaq9qYO1h9T&jsoncallback=?) Et si oui pourriez-vous me montrer sur les liens jsfiddle? – redditor

+0

@redditor Voir ma réponse mise à jour sur la façon d'appeler cette URL. –

+0

Merci pour cela, je pense que je suis un peu plus clair maintenant - j'espère être en mesure d'apprendre cela correctement dans le temps. Donc pour le moment j'ai ceci: http://jsfiddle.net/Pr2GU/ Le JSLint dit qu'il y a une erreur dans le var mois = new Array(); ligne mais je ne comprends pas comment le faire fonctionner. – redditor

Questions connexes