Restituzione di un oggetto JSON da un PageMethod con formattazione personalizzata
-
19-08-2019 - |
Domanda
È possibile formattare il modo in cui un oggetto viene restituito come JSON da un PageMethod? vale a dire. rimuovendo il primo " d " elemento dai dati, senza scrivere da zero JSON.
Da {" d " ;: {" name " ;: " bob " ;, " email " ;: " bob@example.com" }}
A {" name " ;: " bob " ;, email: " bob@example.com" }
Soluzione
No. Il serializzatore JSON di Microsoft aggiunge la d per qualche motivo sul lato server e il codice AJAX sul lato client che deserializza la stringa JSON si aspetta che sia lì.
Altri suggerimenti
Il parametro " d "
extra viene aggiunto dal framework .NET come misura di sicurezza aggiuntiva contro gli attacchi XSS [ fonte ]. È incluso quando il " Content-Type "
della richiesta specifica " application / json "
.
Penso che puoi ottenere il framework per escluderlo (cioè non racchiudere il risultato nel " d "
) se specifichi semplicemente " Content-Type "
della richiesta come qualcosa di diverso da " application / json "
. Prova a rimuovere quell'intestazione dalla richiesta (se puoi) e vedi cosa restituisce .NET.