3 Stimmen

WebMethod-Antwortformat

Ich habe kürzlich ein jQuery-Beispiel gesehen, bei dem ein POST an "Default.aspx/Test" durchgeführt wurde, wobei Test eine WebMethode in Default.aspx war und der Inhaltstyp der Anfrage "application/json" lautete.

Die Antwort der WebMethod war in JSON. Ich dachte immer, dass WebMethods SOAP-Antworten zurückgeben, aber wenn ich diesen Code richtig interpretiere, wie ich sagte, gibt die WebMethod JSON zurück.

Ist dies richtig? Geben WebMethods eine Antwort im Format des Inhaltstyps der Anfrage zurück? Seit wann ist dies möglich? Schon immer? Oder liegt das daran, dass ich ASP.NET AJAX installiert habe? Wenn ja, welche Namespaces kann ich zerlegen, um zu sehen, wie das funktioniert?

Ich habe WebMethods nur für die Kommunikation von .NET zu .NET verwendet, und zwar in SOAP, und habe immer benutzerdefinierten Code geschrieben, um im richtigen Format (SOAP, JSON oder XML) zu antworten, basierend auf einem Query-String-Parameter, der das gewünschte Format angibt. Ich dachte immer, WCF sei für diese Art von Metaformat-Funktionalität erforderlich.

1voto

gimel Punkte 78080

Es ist ein Teil von ASP.NET AJAX . Siehe zum Beispiel Verwendung von Webdiensten in ASP.NET AJAX . Ein Teil der AJAX-Client-Architektur sieht folgendermaßen aus:

Rufen Sie Webdienste mit dem Verb HTTP POST auf. Eine POST-Anfrage hat einen Körper, der die Daten enthält, die der Browser an den Server sendet. Es gibt keine Größenbeschränkung. Daher können Sie eine POST-Anfrage verwenden, wenn die Größe der Daten die eigentliche Größenbeschränkung für eine GET-Anfrage überschreitet. Der Client serialisiert die Anfrage in JSON Format und sendet sie als POST-Daten an den Server. Der Server deserialisiert die JSON Daten in .NET Framework-Typen und führt den eigentlichen Webdienstaufruf durch. Während der Antwort serialisiert der Server die Rückgabewerte und gibt sie an den Client zurück, der sie zur Verarbeitung in JavaScript-Objekte deserialisiert.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X