J'utilise le code suivant dans un de mes fichiers HTMLComment récupérer JSON à partir d'une URL en utilisant JavaScript?
var queryURL = encodeURI(yahooUrl + loc + appId);
alert(queryURL);
$.getJSON(queryURL, function(data){
alert('inside getJSON')
alert(data);
var items = [];
$.each(data, function(key, value){
items.push('<li id="' + key + '">' + value + '</li>');
});
$('<ul/>', {
'class': 'my-new-list',
html: items.join('')
}).appendTo('body');
});`
où queryURL
est une grande requête qui, si je charge de la barre d'adresse du navigateur, je reçois un fichier contenant un objet JSON. Mais le code suivant ne fonctionne pas, l'objet JSON entier est affiché sur la console d'erreur de Firefox, avec l'erreur 'Invalid Label'. J'ai ajouté &callback=?
à la fin de la chaîne de requête comme mentionné dans quelques-unes des réponses ici à SO.
Quelqu'un peut-il suggérer ce que je fais mal?
Modifier: pour
queryURL = "http://where.yahooapis.com/geocode?location=107,South%20Market,San%20Jose,San%20Fransico,Leusina,USA,&flags=J&appid=dj0yJmk9SUk0NkdORm9qM2FyJmQ9WVdrOU1tVnFUVzlVTm5NbWNHbzlORFl4TnpZME5UWXkmcz1jb25zdW1lcnNlY3JldCZ4PWE1&callback=?"
Je reçois l'erreur suivante:
Error: invalid label
Source File: http://where.yahooapis.com/geocode?location=107,South%20Market,San%20Jose,San%20Fransico,Leusina,USA,&flags=J&appid=dj0yJmk9SUk0NkdORm9qM2FyJmQ9WVdrOU1tVnFUVzlVTm5NbWNHbzlORFl4TnpZME5UWXkmcz1jb25zdW1lcnNlY3JldCZ4PWE1&callback=jQuery16404719878257064011_1316606312366&_=1316608283354
Line: 1, Column: 1
Code Source:
{"ResultSet":{"version":"1.0","Error":0,"ErrorMessage":"No error","Locale":"us_US","Quality":87,"Found":1,"Results":[{"quality":39,"latitude":"37.336849","longitude":"-121.847710","offsetlat":"37.338470","offsetlon":"-121.885788","radius":34800,"name":"","line1":"","line2":"San Jose, CA","line3":"","line4":"United States","house":"","street":"","xstreet":"","unittype":"","unit":"","postal":"","neighborhood":"","city":"San Jose","county":"Santa Clara County","state":"California","country":"United States","countrycode":"US","statecode":"CA","countycode":"","uzip":"","hash":"","woeid":2488042,"woetype":7}]}}
Le '' = rappel est de déclencher le mode 'jsonp' , ce qui n'est utile que si vous récupérez des données json d'un domaine autre que votre page. –
Oui ... comme vous pouvez le deviner j'interroge l'API de Yahoo ... – aProgrammer
Pouvez-vous publier la chaîne JSON, ou une partie de celle-ci? Il peut s'agir d'un problème dû au formatage incorrect de JSON lorsque la chaîne est affichée dans la console et donc renvoyée au client. –