Retornando um objeto JSON de um PageMethod com formatação personalizada
-
19-08-2019 - |
Pergunta
É possível formatar como um objeto é retornado como JSON de um PageMethod? ie. removendo o primeiro "d" elemento a partir dos dados, sem escrever o JSON a partir do zero.
De { "d": { "name": "bob", "e-mail": "bob@example.com"}}
Para { "name": "bob", e-mail: "bob@example.com"}
Solução
No. JSON serializador do Microsoft adiciona a d por algum motivo no lado do servidor, eo código AJAX do lado do cliente que desserializa a string JSON espera que seja lá.
Outras dicas
O parâmetro "d"
extra é adicionado pelo framework .NET como uma medida de segurança adicional contra ataques XSS [ fonte ]. É incluído quando o "Content-Type"
do "application/json"
solicitação especifica.
I pensar você pode obter a estrutura para excluí-lo (ou seja, não enrole o resultado no "d"
) se você simplesmente especificando o "Content-Type"
do pedido como algo diferente de "application/json"
. Tente remover esse cabeçalho do pedido (se possível) e ver o que .NET retornos.