Возврат объекта JSON из PageMethod с пользовательским форматированием - PullRequest
3 голосов
/ 24 января 2009

Можно ли отформатировать, как объект возвращается как JSON из PageMethod? то есть. удаление первого элемента «d» из данных без написания JSON с нуля.

От {"d": {"name": "bob", "email": "bob@example.com"}}

To {"name": "bob", электронная почта: "bob@example.com"}

Ответы [ 2 ]

4 голосов
/ 24 января 2009

Дополнительный параметр "d" добавляется платформой .NET в качестве дополнительной меры защиты от атак XSS [ source ]. Включается, когда "Content-Type" запроса указывает "application/json".

Я думаю, вы можете получить структуру, чтобы исключить ее (т.е. не переносить результат в "d"), если вы просто указали "Content-Type" запроса как нечто отличное от "application/json". Попробуйте удалить этот заголовок из запроса (если можете) и посмотрите, что вернет .NET.

1 голос
/ 24 января 2009

Нет. Сериализатор JSON от Microsoft по какой-то причине добавляет d на стороне сервера, а клиентский код AJAX, который десериализует строку JSON, ожидает ее появления.

...