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"}

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top