2009-01-23 6 views
3

Est-il possible de formater comment un objet est renvoyé en JSON à partir d'une méthode PageMethod? c'est à dire. supprimer le premier élément "d" des données, sans écrire le JSON à partir de zéro.Renvoyer un objet JSON à partir d'une méthode PageMethod avec un formatage personnalisé

De { "d": { "name": "bob", "email": "[email protected]"}}

Pour { "name": "bob", email: « bob @ example.com "}

+0

Avez-vous un exemple de votre logique de page? – cgreeno

+0

Quelle est la raison de vouloir l'enlever? –

Répondre

1

Non. Le sérialiseur JSON de Microsoft ajoute le d pour une raison quelconque du côté serveur, et le code AJAX côté client qui désérialise la chaîne JSON s'attend à ce qu'il soit là.

4

Le paramètre supplémentaire "d" est ajouté par le framework .NET en tant que mesure de sécurité supplémentaire contre les attaques XSS [source]. Il est inclus lorsque le "Content-Type" de la demande spécifie "application/json".

Je pense que vous pouvez obtenir le cadre de l'exclure (ne pas envelopper le résultat dans la "d") si vous spécifiant simplement le "Content-Type" de la demande comme autre chose que "application/json". Essayez de supprimer cet en-tête de la demande (si vous le pouvez) et de voir ce que .NET renvoie.

+0

Malheureusement, vous devez utiliser ce type de contenu pour renvoyer des données au format JSON, mais tout ce qui ne fonctionne pas ne fonctionne pas. Je pense que j'ai besoin de regarder ce problème sous un autre angle, c'est à dire. Obtenir ExtJS pour accepter JSON dans ce format. Merci. – markvpc

Questions connexes