J'ai obtenu un "parsererror" de jquery pour une requête Ajax, j'ai essayé de changer le POST en GET, de retourner les données de différentes manières (en créant des classes, etc.) mais je n'arrive pas à comprendre quel est le problème.
Mon projet est en MVC3 et j'utilise jQuery 1.5. J'ai une liste déroulante et, lors de l'événement onchange, je lance un appel pour obtenir des données en fonction de ce qui a été sélectionné.
Dropdown : (cela charge les "Views" à partir de la liste dans le Viewbag et le déclenchement de l'événement fonctionne bien)
@{
var viewHtmls = new Dictionary<string, object>();
viewHtmls.Add("data-bind", "value: ViewID");
viewHtmls.Add("onchange", "javascript:PageModel.LoadViewContentNames()");
}
@Html.DropDownList("view", (List<SelectListItem>)ViewBag.Views, viewHtmls)
Javascript :
this.LoadViewContentNames = function () {
$.ajax({
url: '/Admin/Ajax/GetViewContentNames',
type: 'POST',
dataType: 'json',
data: { viewID: $("#view").val() },
success: function (data) {
alert(data);
},
error: function (data) {
debugger;
alert("Error");
}
});
};
Le code ci-dessus appelle avec succès la méthode MVC et retourne :
[{"ViewContentID":1,"Name":"TopContent","Note":"Content on the top"},
{"ViewContentID":2,"Name":"BottomContent","Note":"Content on the bottom"}]
Mais jquery déclenche l'événement d'erreur pour la méthode $.ajax() en disant "parsererror".
0 votes
Est-ce qu'une erreur javascript s'affiche dans la console ou est-ce que la fonction de gestion "error" de la commande $.ajax() est exécutée ?
0 votes
Désolé, j'aurais dû être plus précis, il déclenche la fonction d'erreur $.ajax() { alert("Error") ; }
0 votes
Une chance d'avoir un lien en direct ? Voyez-vous les données JSON que vous affichez dans Firebug ?
0 votes
Non, je n'ai pas de lien direct. Mais oui, c'est la réponse JSON affichée dans Firebug.
0 votes
Yep, ma faute était une faute de frappe. J'ai corrigé la question
0 votes
@mu est trop court - pour être parfaitement honnête, 'javascript:' ne devrait pas être là du tout...
0 votes
Probablement pas, j'ai juste essayé quelques trucs. Mais ce n'est pas le problème que j'ai, l'événement est déclenché correctement.
0 votes
Je rencontre également ce problème avec jQuery 1.7.2. Le mien est un peu plus complexe, car j'essaie d'utiliser un ajaxPrefilter contre une ressource CORS. Je pense que j'ai le même problème que cet homme : bugs.jquery.com/ticket/12783 Je poste cette information ici au cas où quelqu'un d'autre rencontrerait ce problème avec la dernière version de Jquery en essayant d'analyser un JSON valide.