Формат ответа WebMethod
-
05-07-2019 - |
Вопрос
Недавно я видел пример jQuery, в котором был сделан POST для «Default.aspx / Test», где Test был WebMethod в Default.aspx, а тип содержимого для запроса был «application / json». р>
Ответ от WebMethod был в формате JSON. Я всегда думал, что WebMethods возвращает ответы SOAP, но если я правильно интерпретирую этот код, как я уже сказал, WebMethod возвращает JSON.
Это правильно? Возвращают ли WebMethods ответ в формате типа содержимого запроса? С каких это пор это стало возможным? Всегда? Или это потому, что у меня установлен ASP.NET AJAX? Если да, какие пространства имен я могу разобрать, чтобы увидеть, как это работает?
Я использовал только WebMethods для связи .NET с .NET, которая была в SOAP, и всегда писал собственный код для ответа в правильном формате (SOAP, JSON или XML) на основе параметра строки запроса. указав желаемый формат. Я всегда думал, что WCF необходим для такой функциональности метаформатов.
Решение
Он является частью ASP.NET AJAX
. См., Например, Использование веб-служб в ASP.NET AJAX .
Часть клиентской архитектуры AJAX выглядит следующим образом:
Вызовите веб-службы с помощью глагола HTTP POST. У запроса POST есть тело, которое содержит данные, которые браузер отправляет на сервер. У него нет ограничения по размеру. Следовательно, вы можете использовать запрос POST, когда размер данных превышает внутреннее ограничение размера для запроса GET. Клиент сериализует запрос в формате JSON и отправляет его в виде данных POST на сервер. Сервер десериализует данные JSON в типы .NET Framework и выполняет фактический вызов веб-службы. Во время ответа сервер сериализует возвращаемые значения и передает их обратно клиенту, который десериализует их в объекты JavaScript для обработки.