Message: Invalid JSON primitive: ajax jquery méthode avec Webmethod
Je suis en utilisant les Données de la valeur en tant qu'objet littéral, au lieu de la concaténation d'une Chaîne comme expliqué dans cette réponse
Mon code est le suivant:
$.ajax({
url: "../Member/Home.aspx/SaveClient",
type: "POST",
async: false,
dataType: 'json',
contentType: 'application/json; charset=utf-8',
data: {
"projectSoid": ProjectId,
"startDate": StartDate,
"endDate": EndDate,
"clientManager": ClientManager
},
success: function(response) {
if (response.d != "") {
}
},
error: function(response) {
var r = jQuery.parseJSON(response.responseText);
alert("Message: " + r.Message);
alert("StackTrace: " + r.StackTrace);
alert("ExceptionType: " + r.ExceptionType);
}
})
et mon webmethod est comme ceci :
[WebMethod]
public static string SaveClient(string projectSoid, string startDate,
string endDate, string clientManager)
{
...
}
Mais j'obtiens l'erreur suivante:
Message: Invalid JSON primitive: projectSoid
- Vous avez besoin de JSON.strigify vos données:
data: JSON.strigify({ "projectSoid": ProjectId, "startDate": StartDate, "endDate": EndDate, "clientManager": ClientManager }),
- Aucun commentaire sur mon commentaire? Avez-vous essayé? Est-il travaillé?
- je ne sais pas qu'est-ce que JSON.strigify? je suis d'erreur qu'il n'est pas la fonction 🙁
- Quel navigateur utilisez-vous? Vous pouvez avoir besoin de json2 dans les navigateurs plus anciens
- j'utilise IE 8
- veuillez relire comme réponse, donc je peux le sélectionner
- +1 nemesv. Résolu mon problème 🙂
- Nestor eu une erreur car nemesv faute de frappe d'erreur (s'il a raté un n): JSON.stringify
- L'orthographe correcte est JSON.stringify
Vous devez vous connecter pour publier un commentaire.
Avec votre
contentType: 'application/json; charset=utf-8'
vous alléguez que vous allez envoyer JSON mais actuellement votredata
propriété n'est pas tenue de JSON.Vous avez besoin pour transformer votre
data
en JSON avec laJSON.stringify
méthode:Donc changer votre
data
propriété:Vous devriez noter que les
JSON.stringify
méthode n'est pas pris en charge nativement dans les navigateurs plus anciens, de sorte que vous pouvez avoir besoin de fournir une mise en œuvre avec l'aide de l'une de ces bibliothèques, comme:Douglas Crockford de JSON2 de la bibliothèque.
Javascript côté Client
Méthode Web au Code derrière