J'essaie d'effectuer un appel et de récupérer un fichier JSON très simple, d'une ligne.
$(document).ready(function() {
jQuery.ajax({
type: 'GET',
url: 'http://wncrunners.com/admin/colors.json' ,
dataType: 'jsonp',
success: function(data) {
alert('success');
}
});
});//end document.ready
Voici la demande RAW :
GET http://wncrunners.com/admin/colors.json?callback=jQuery16406345664265099913_1319854793396&_=1319854793399 HTTP/1.1
Host: wncrunners.com
Connection: keep-alive
Cache-Control: max-age=0
User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.106 Safari/535.2
Accept: */*
Referer: http://localhost:8888/jquery/Test.html
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
Voici la réponse RAW :
HTTP/1.1 200 OK
Date: Sat, 29 Oct 2011 02:21:24 GMT
Server: Apache/1.3.33 (Unix) mod_ssl/2.8.22 OpenSSL/0.9.7d SE/0.5.3
Last-Modified: Fri, 28 Oct 2011 17:48:47 GMT
ETag: "166a2402-10-4eaaeaff"
Accept-Ranges: bytes
Content-Length: 16
Content-Type: text/plain
Connection: close
{"red" : "#f00"}
Le JSON revient dans la réponse (rouge : #f00), mais Chrome rapporte Erreur de syntaxe involontaire : Unxpected token : colors.json:1
Si je navigue directement vers l'url elle-même, le JSON est renvoyé et s'affiche dans le navigateur.
Si je colle le contenu de colors.json dans JSLINT, le json est validé.
Avez-vous une idée de la raison pour laquelle je n'obtiens pas cette erreur et que je n'arrive jamais au rappel de réussite ?
EDIT - L'appel jQuery.ajax() ci-dessus fonctionne parfaitement sur jsfiddle.net, et renvoie l'alerte 'success' comme prévu.
EDIT 2 - Cette URL fonctionne bien (http://api.wunderground.com/api/8ac447ee36aa2505/geolookup/conditions/q/IA/Cedar\_Rapids.json). J'ai remarqué qu'elle était renvoyée sous la forme TYPE : text/javascript et que Chrome ne générait pas de jeton inattendu. J'ai testé plusieurs autres URL et la SEULE qui n'envoie pas le jeton inattendu est celle de wunderground qui est renvoyée sous la forme TYPE : text/javascript.
Les flux retournés en tant que text/plain et application/json ne sont pas analysés correctement.
0 votes
J'ai réalisé qu'en tapant l'url dans un navigateur, le "#" n'apparaît pas dans le json. wncrunners.com/admin/colors.json
0 votes
Merci pour votre contribution. J'ai retiré le # pour tester la théorie de Keith. Cette suppression n'a pas affecté l'erreur. J'ai également supprimé l'extension .json du fichier. Même erreur.