L’appel Ajax n’appelle pas côté serveur et dans httpfox, l’erreur indique «Erreur lors du chargement du contenu (NS_ERROR_DOCUMENT_NOT_CACHED)» dans un post-appel ajax

Ici, je fais un simple appel post ajax depuis ma page asp.net, qui montre l’erreur suivante sur httpfox. “Erreur de chargement du contenu (NS_ERROR_DOCUMENT_NOT_CACHED)” et

error: function () { alert(arguments[2]); } 

de mon appel ajax affiche le message d’alerte comme “erreur de serveur interne”

Ici, je crée un tableau JSON et convertis ce tableau json en une chaîne JSON et le passe en tant que paramètre à la méthode côté serveur.

voici mon appel ajax

  $('#btnResult').on('click', function () { var myObject = new Object(); $("# tr").each(function () { var id = $(this).find("input[name*='ID']").val(); var locationcode = $(this).find("input[name*='TextLocationCode']").val(); var Location = $(this).find("input[name*='TextLocation']").val(); myObject.id = id; myObject.locationcode = locationcode; myObject.Location = Location; }); var mySsortingng = JSON.ssortingngify(myObject); alert(mySsortingng); var exportdata = mySsortingng; $.ajax({ type: "POST", url: "Default.aspx/ExportToExcel", data: exportdata, contentType: "application/json; charset=utf-8", dataType: "json", success: function (data) { $("#Result").text(data.d); }, error: function () { alert(arguments[2]); } }); }); }); 

et voici mon code côté serveur

  [WebMethod] [ScriptMethod(ResponseFormat = ResponseFormat.Json)] public static ssortingng ExportToExcel(ssortingng details) { return "Message : Success"; } 

Une idée ? Qu’est-ce qu’il se passe ici ?

Essaye ça:

 $('#btnResult').on('click', function () { var myArray = []; $("#<%=GridProjectDetails.ClientID %> tr").each(function () { var id = $(this).find("input[name*='ID']").val(); var locationcode = $(this).find("input[name*='TextLocationCode']").val(); var Location = $(this).find("input[name*='TextLocation']").val(); var myObject = new Object(); myObject.id = id; myObject.locationcode = locationcode; myObject.Location = Location; myArray.push(myObject); }); var mySsortingng = JSON.ssortingngify({details: JSON.ssortingngify(myArray)}); alert(mySsortingng); var exportdata = mySsortingng; $.ajax({ type: "POST", url: "Default.aspx/ExportToExcel", data: exportdata, contentType: "application/json; charset=utf-8", dataType: "json", success: function (data) { $("#Result").text(data.d); }, error: function () { alert(arguments[2]); } }); }); }); 

Merci pour toutes vos réponses.

Aujourd’hui, j’ai eu la réponse après avoir cherché Google pendant plus d’1 heure.

Ce que j’ai appris, c’est lors de l’envoi de données JSON à l’aide de la méthode ssortingngfy (); côté serveur, nous devons définir le paramètre en tant qu’object. pas un autre format comme ssortingng / int / bla bla …..

En fait, il y avait une erreur sur mon paramètre côté serveur. Je l’ai modifié de chaîne en object et cela a fonctionné pour moi. Ici, j’ai défini ma réponse modifiée.

  $('#btnResult').on('click', function () { var mydata = []; $("#<%=GridProjectDetails.ClientID %> tr").each(function () { var myObject = new Object(); var id = $(this).find("input[name*='ID']").val(); var locationcode = $(this).find("input[name*='TextLocationCode']").val(); var Location = $(this).find("input[name*='TextLocation']").val(); myObject.id = id; myObject.locationcode = locationcode; myObject.Location = Location; mydata.push(myObject); }); var mySsortingng = JSON.ssortingngify({ details: JSON.ssortingngify(mydata) }); alert(mySsortingng); var exportdata = mySsortingng; $.ajax({ type: "POST", url: "Default.aspx/ExportToExcel", data: exportdata, contentType: "application/json; charset=utf-8", dataType: "json", success: function (data) { $("#Result").text(data.d); }, error: function () { alert(arguments[2]); } }); }); }); 

et ma méthode côté serveur devrait être

 [WebMethod] [ScriptMethod(ResponseFormat = ResponseFormat.Json)] public static ssortingng ExportToExcel(object details) { return "Message : Success"; } 

Envoyer des données en utilisant la méthode suivante

  data: "{'details':" + mySsortingng "}",