De retour de la chaîne de l'ajax appel à l'aide de Jquery Web Méthode de ASP.NET
À l'intérieur de mon ASP.NET site, je suis en appelant une Méthode Web à l'aide de Jquery comme suit:
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
data: "{'param1': '" + param1 + "','param2': '" + param2+ "' }",
dataType: 'json',
url: "Default.aspx/TestMethod",
error: function (jqXHR, textStatus, errorThrown) {
alert("error: " + textStatus);
},
success: function (msg) {
document.getElementById("content").innerHTML = msg.d;
}
});
Web Définition de la Méthode est:
[System.Web.Services.WebMethod]
public static String TestMethod(String param1, String param2)
{
String to_return = /* result of operations on param1 and param2 */;
return to_return;
}
Mon résultat est une Chaîne contenant le code HTML.
C'est le travail parfait si la to_return
chaîne est faible.
Mais il me donne l'erreur:
500 Erreur Interne du Serveur 6.22 s
J'ai essayé de l'explorer à l'aide de FireBug en Réponse il me montre:
{"Message":"Il y a une erreur dans le traitement de la demande.","StackTrace":"","ExceptionType":""}
À l'aide de points d'arrêt dans Visual Studio, j'ai copié le to_return
chaîne de caractères dans un fichier texte. La taille du fichier est devenu: 127 KO.
Ce qui s'est mal passé?
data: "{'param1': '" + param1 + "','param2': '" + param2+ "' }"
? Vous pouvez déclarer un réel objet JavaScript, vous n'avez pas à faire une chaîne de caractères qui représente l'objet.Merci pour le heads up. En fait, je suis de nouveau à des appels Ajax. Je vais sûrement mettre à jour mon code pour utiliser l'Objet JavaScript.
J'élargirai votre
error
fonction de rappel pour ne console.log(errorThrown);
puis utilisez votre navigateur outils de développement pour voir ce qui est enregistré dans la console; il peut vous donner une idée plus claire de ce qu'est l'erreur. Vérifiez également que le to_return
chaîne représente JSON valide dans la requête qui ne fonctionne pas; jQuery erreur si il ne peut pas analyser la réponse en JSON lorsque vous spécifiez dataType: 'json'
.OriginalL'auteur user1808827 | 2012-12-17
Vous devez vous connecter pour publier un commentaire.
La plupart vous avez probablement dépassé MaxJsonLength, par défaut il est 102400 caractères et votre chaîne est plus grande. Vous pouvez augmenter cette limite dans le web.config:
maxJsonLength
supérieure à sa valeur par défaut?Cela n'affectera pas la sérialisation de la performance (en fait la valeur par défaut pour JavaScriptSerializer qui vous serait de construire manuellement est 2097152). L'objectif de cette limitation est de faire de développeur pense que si ils veulent vraiment générer de telles une grande réponse (après tout, c'est ussually le transfert qui prend le plus de temps).
quelle est la taille maximale pour le
jsonSerialization
pour autant que je sais c'est Int32.MaxValue (donc environ 2147483647)
OriginalL'auteur