jQuery JSON Analyser - Jeton Inattendu Erreur

Je suis en train d'utiliser Envato API afin de recueillir de l'utilisateur stats w/jQuery. Je vais vous montrer un exemple de réponse JSON:

{
"new-files-from-user":[
{
"thumbnail":"http://3.s3.envato.com/files/60560.jpg",
"tags":"",
"user":"collis",
"url":"http://themeforest.net/item/manilla-photoshop-design/22803",
"live_preview_url":"http://2.s3.envato.com/files/60561/1_Home.__large_preview.jpg",
"uploaded_on":"Wed Dec 03 03:32:35 +1100 2008",
"cost":"10.00",
"item":"Manilla Photoshop Design",
"sales":"294",
"rating":"4",
"id":"22803"
},
{
"thumbnail":"http://2.s3.envato.com/files/60223.jpg",
"tags":"clean",
"user":"collis",
"url":"http://themeforest.net/item/black-white-simple-theme/22705",
"live_preview_url":"http://0.s3.envato.com/files/60224/1_home.__large_preview.jpg",
"uploaded_on":"Tue Dec 02 04:01:12 +1100 2008",
"cost":"8.00","item":"Black + White Simple Theme",
"sales":"272","
rating":"4",
"id":"22705"
},
{
"thumbnail":"http://1.s3.envato.com/files/44556.jpg",
"tags":"clean",
"user":"collis",
"url":"http://themeforest.net/item/quik-v1-admin-skin/17314",
"live_preview_url":"http://3.s3.envato.com/files/44557/1_green.__large_preview.jpg",
"uploaded_on":"Fri Sep 05 07:30:24 +1000 2008","cost":"12.00",
"item":"Quik v1 Admin Skin",
"sales":"336",
"rating":"5",
"id":"17314"
},
{"thumbnail":"http://3.s3.envato.com/files/45212.jpg",
"tags":"clean",
"user":"collis",
"url":"http://themeforest.net/item/freshcorp-business-template/17528",
"live_preview_url":"http://3.s3.envato.com/files/45213/1_Homepage.__large_preview.jpg",
"uploaded_on":"Tue Sep 09 06:10:50 +1000 2008",
"cost":"20.00",
"item":"FreshCorp - Business Template",
"sales":"277",
"rating":"4","id":"17528"
},
{"thumbnail":"http://0.s3.envato.com/files/45739.jpg",
"tags":"clean",
"user":"collis",
"url":"http://themeforest.net/item/real-estate-html-template/17732",
"live_preview_url":"http://0.s3.envato.com/files/45740/1_homepage.__large_preview.jpg",
"uploaded_on":"Fri Sep 12 14:22:45 +1000 2008",
"cost":"20.00","item":"Real Estate HTML Template",
"sales":"175",
"rating":"4",
"id":"17732"
}
]
}

Voici mon script:

<script type="text/javascript">
//this gets JSON data from an url
$.getJSON("http://marketplace.envato.com/api/edge/new-files-from-user:collins,themeforest.json?callback=?",
//this function gets called when data has been recieved
function(data){
//parsing JSON data, line by line(like foreach)
$.each(data['new-items-from-user'], function(i,item){
//puts all titles in our div
$("#test").append(item.item+"<br />");
});
});
</script>
<div id="test"></div>

Et voici ce que j'obtiens dans le Chrome console: "Uncaught SyntaxError: Unexpected Token :' (pic http://imgur.com/8qoqO).

Je ne suis pas sûr si j'ai une erreur dans mon code qui est à l'origine de ce problème, mais voici un violon pour voir le résultat: http://jsfiddle.net/wkmDj/

Grâce,
Matt

  • le : dans l'url provoque l'erreur, soit parce que jQuery analyse et ne l'aime pas ou le XHR objet lui-même ne l'aime pas.
  • Est-il une solution pour cela? Pensez-vous l'encodage de l'URL serait le résoudre?
  • Edit: sur la console Chromée il dit que c'est l'obtention de l'erreur à partir du flux JSON, je vais mettre à jour mon post avec un pic
  • Pas sûr si cela est pertinent: mon safari client se plaint du fait que la ressource est envoyé avec le type MIME application/octet-stream. Qui n'est pas bonne, n'est ce pas?
  • Je pense que le point d'interrogation à la fin de votre URL est un problème. Les modifications message d'erreur si vous le déposez.
  • -Les étés, le "octet-stream" fait partie d'un .htaccess modification qui permet de s'assurer que votre ordinateur télécharge le flux JSON au lieu de l'afficher dans votre navigateur. -Seth, le point d'interrogation est nécessaire (une partie de rappel), de sorte que le JSON peut être consulté par jQuery, sinon vous obtiendrez d'Origine fiddle.jshell.net n'est pas autorisé par Access-Control-Allow-Origin.'
  • Essayez encodage du côlon et du dernier point d'interrogation, voir si cela fonctionne.
  • Les gars, il charge le JSON amende, c'est le côlon à l'intérieur de la réponse JSON qui est à l'origine du problème jsfiddle.net/AWq7D/1
  • c'est parce que le raw JSON est interprétée par le parser JavaScript tel qu'il est - il n'y a pas de fonction de rappel. En d'autres termes, le JSONP réponse est de retour sans l'appel de la fonction enroulé autour des données JSON.
  • J'ai mis à jour ma réponse.

InformationsquelleAutor Matt | 2012-01-19