Impossible de recevoir le code JSON de l'appel ajax de JQuery
Question
J'ai déterminé que mon JSON, provenant du serveur, est valide (l'appel manuel ajax est manuel), mais j'aimerais vraiment utiliser JQuery. J'ai également déterminé que le "post" L'URL, étant envoyé au serveur, est correct, en utilisant firebug. Cependant, le rappel d'erreur est toujours déclenché (erreur d'analyse). J'ai aussi essayé le type de données: text.
Existe-t-il d'autres options à inclure?
$(function() {
$("#submit").bind("click", function() {
$.ajax({
type: "post",
url: "http://myServer/cgi-bin/broker" ,
datatype: "json",
data: {'start' : start,'end' : end},
error: function(request,error){
alert(error);
},
success: function(request) {
alert(request.length);
}
}); // End ajax
}); // End bind
}); // End eventlistener
La solution
Voici quelques suggestions que je voudrais essayer:
1) L'option 'type de données' que vous avez spécifiée doit être 'type de données' (sensible à la casse, je crois)
2) essayez d'utiliser l'option 'contentType' comme suit:
contentType: "application/json; charset=utf-8"
Je ne sais pas dans quelle mesure cela vous aidera, car il est utilisé dans la requête de votre URL de publication, pas dans la réponse. Voir cet article pour plus d'informations: http://encosia.com/2008/06/05/3-mistakes-to-avoid-when-using-jquery-with-aspnet-ajax (Il est écrit pour asp.net, mais peut s'appliquer)
3) Vérifiez trois fois la sortie de votre URL de publication et exécutez-la via un validateur JSON pour vous assurer qu'elle est valide et peut être analysée dans un objet JSON. http://www.jsonlint.com
J'espère que cela vous aidera!
Autres conseils
Pourquoi myResult
au lieu de demande
?
success: function(request) {
alert(myResult.length);
}
Le paramètre data est incorrect. Voici un exemple qui fonctionne:
données: {index: ddl.selectedIndex},
Ceci construit un objet avec une propriété appelée index avec la valeur ddl.selectedIndex.
Vous devez supprimer les guillemets de votre ligne de paramètre de données
.bonne chance Un