Der C # -Webdienst gibt JSON nicht aus, sondern nur XML

8

Ich versuche, jQuery und JSON mit einem C # -Webdienst zu verwenden, den ich geschrieben habe. Der folgende Code wird nur in XML ausgegeben.

Webservice-Code

%Vor%

Ich habe diese Attribute auch der Klasse

zugewiesen %Vor%

jQuery-Code

%Vor%

Die ASMX-Seite gibt immer den Inhaltstyp "text / xml" zurück. Alles was ich vermisse?

EDITS: Als Antwort auf ein paar Antworten:

Wenn ich den Datentyp nur als "json" habe, ist der Inhalt immer noch XML und jQuery wird auch nicht meine Callback-Funktion aufrufen. Wenn ich die "& amp; Callback =?" In der URL gibt IIS einen HTTP 500-Fehler aus.

Meine Klasse erbt von "System.Web.Services.WebService".

Nachdem ich ein paar Nachforschungen angestellt habe, sieht es so aus, als müsste ich mich mit WCF anlegen. Leider ist das JSON, das zurückgegeben wird, eher für MS Ajax ausgelegt und es ist eine Menge nutzloser Bloat für meine Verwendung. Ich kann in eine Open-Source-Bibliothek wie Jayrock oder etwas ähnliches schauen.

Danke für Ihre Hilfe!

    
TheDude 19.03.2009, 19:54
quelle

4 Antworten

2

Soweit ich weiß, erlaubt es das ScriptService-Attribut dem Dienst, automatisch einen JavaScript-Proxy zu erstellen (indem Sie / js an die Endpunktadresse - in Ihrem Fall ScheduleComputerDS.asmx / js - anhängen). Es erlaubt Ihnen nicht, die Operationen auf dem Dienst so aufzurufen, wie Sie es versuchen.

Sie können stattdessen einen RESTful-WCF-Dienst (der .NET 3.5 erfordert) verwenden, auf den Sie zugreifen können, indem Sie einen ordnungsgemäß gestalteten URI über ein HTTP-GET senden.

    
Rob Windsor 19.03.2009, 20:13
quelle
6
___ antwort663832 ___

Ich denke, es gibt einen Tippfehler:

%Vor%

Sollte sein:

%Vor%     
___ answer663856 ___

Rich Strahl hat einen wirklich grundlegenden Beitrag, der Ihnen dabei helfen sollte.

Ссылка

    
___ qstnhdr ___ Der C # -Webdienst gibt JSON nicht aus, sondern nur XML ___ tag123c ___ C # (sprich "Cis") ist eine objektorientierte Programmiersprache auf hohem Niveau, die für die Erstellung einer Vielzahl von Anwendungen entwickelt wurde, die auf dem .NET Framework (oder .NET Core) ausgeführt werden. C # ist einfach, leistungsfähig, typsicher und objektorientiert. ___ tag123jquery ___ jQuery ist eine beliebte Cross-Browser-JavaScript-Bibliothek, die das DOM-Traversal (Document Object Model), die Ereignisbehandlung, Animationen und AJAX-Interaktionen erleichtert, indem die Diskrepanzen zwischen Browsern minimiert werden. Eine mit jQuery gekennzeichnete Frage sollte mit jquery in Zusammenhang stehen, daher sollte jquery von dem fraglichen Code verwendet werden, und mindestens eine jquery-nutzungsbezogene Elemente müssen in der Frage enthalten sein. ___ answer663860 ___

Soweit ich weiß, erlaubt es das ScriptService-Attribut dem Dienst, automatisch einen JavaScript-Proxy zu erstellen (indem Sie / js an die Endpunktadresse - in Ihrem Fall ScheduleComputerDS.asmx / js - anhängen). Es erlaubt Ihnen nicht, die Operationen auf dem Dienst so aufzurufen, wie Sie es versuchen.

Sie können stattdessen einen RESTful-WCF-Dienst (der .NET 3.5 erfordert) verwenden, auf den Sie zugreifen können, indem Sie einen ordnungsgemäß gestalteten URI über ein HTTP-GET senden.

    
___ qstntxt ___

Ich versuche, jQuery und JSON mit einem C # -Webdienst zu verwenden, den ich geschrieben habe. Der folgende Code wird nur in XML ausgegeben.

Webservice-Code

%Vor%

Ich habe diese Attribute auch der Klasse

zugewiesen %Vor%

jQuery-Code

%Vor%

Die ASMX-Seite gibt immer den Inhaltstyp "text / xml" zurück. Alles was ich vermisse?

EDITS: Als Antwort auf ein paar Antworten:

Wenn ich den Datentyp nur als "json" habe, ist der Inhalt immer noch XML und jQuery wird auch nicht meine Callback-Funktion aufrufen. Wenn ich die "& amp; Callback =?" In der URL gibt IIS einen HTTP 500-Fehler aus.

Meine Klasse erbt von "System.Web.Services.WebService".

Nachdem ich ein paar Nachforschungen angestellt habe, sieht es so aus, als müsste ich mich mit WCF anlegen. Leider ist das JSON, das zurückgegeben wird, eher für MS Ajax ausgelegt und es ist eine Menge nutzloser Bloat für meine Verwendung. Ich kann in eine Open-Source-Bibliothek wie Jayrock oder etwas ähnliches schauen.

Danke für Ihre Hilfe!

    
___ tag123webservices ___ Ein "Webservice" ist ein Softwaresystem, das Interoperabilität zwischen Maschine und Maschine über das World Wide Web unterstützt. ___ tag123json ___ JSON (JavaScript Object Notation) ist ein Textdatenaustauschformat und sprachunabhängig. Verwenden Sie dieses Tag, wenn dieses Textformat beteiligt ist. VERWENDEN SIE DIESEN TAG NICHT FÜR NATIVE JAVASCRIPT-OBJEKTE ODER JAVASCRIPT OBJECT LITERALS. Bevor Sie eine Frage stellen, wenn Sie glauben, dass Ihr JSON gültig ist, überprüfen Sie diese bitte in einem JSON-Validator wie JSONLint, damit Ihre Frage beantwortet wird, bevor Sie sie überhaupt stellen. ___ answer663831 ___

Haben Sie versucht mit dem Datentyp %code% ?

Sehen Sie sich auch Encosias Verwendung von jQuery an Verwenden Sie den ASP.NET JSON Web Services-Artikel zu diesem Thema. Es gibt auch einige gute Informationen über häufige Fallstricke.

    
___
eduncan911 19.03.2009 20:06
quelle
3

Rich Strahl hat einen wirklich grundlegenden Beitrag, der Ihnen dabei helfen sollte.

Ссылка

    
bendewey 19.03.2009 20:13
quelle
1

Haben Sie versucht mit dem Datentyp json ?

Sehen Sie sich auch Encosias Verwendung von jQuery an Verwenden Sie den ASP.NET JSON Web Services-Artikel zu diesem Thema. Es gibt auch einige gute Informationen über häufige Fallstricke.

    
Russ Cam 19.03.2009 20:05
quelle

Tags und Links