Ich kann meinen Webservice mit jQuery aufrufen, wenn der contentType="application / x-www-form-urlencoded; charset = utf-8"
ist Dies wird jedoch die xml: <string>[myjson]</string>
Wenn ich versuche, mit "application / json; charset = utf-8" an den Dienst zu senden, erhalte ich einen Fehler von 500 mit einem leeren StackTrace und ExceptionType. Meine Webservice-Funktion wird nie getroffen, daher weiß ich nicht genau, wie ich diese Situation debuggen soll.
Meine Methoden und Klassen sind mit den entsprechenden Attributen versehen und so eingestellt, dass JSON als Antworttyp verwendet wird (wie auch meine WSDL- und DISCO-Dateien). Ich habe die Ajax-Erweiterungen installiert und die erforderlichen Einträge in web.config.
Dies ist in einer SharePoint-Farm, aber ich bin mir nicht sicher, ob das zu viel Unterschied macht. Ich habe die web.config-Änderungen auf allen WFEs installiert sowie die Ajax-Erweiterungen installiert. Erneut funktioniert der Dienst, er akzeptiert nur den Standard-Inhaltstyp.
Nicht sicher, was ich hier vermisse, Jungs ...
mein Ajax-Anruf:
%Vor%Meine Webservice-Klasse:
%Vor%Ich habe dies in 2.0 mit Web-Services funktioniert, aber ich habe Schutz vor der .d (siehe dataFilter unten). Ich gebe auch eine Reihe von Objekten zurück. HINWEIS: Die Klasse für das Objekt ist statisch oder würde zumindest für mich nicht korrekt funktionieren.
%Vor%Hier ist ein Ausschnitt meines Web-Service:
...
%Vor%...
der Objektcode:
%Vor%Ich habe mich heute mit einer iPhone-App im Gespräch mit einem .Net-Webdienst herumgeschlagen.
Ich habe festgestellt, dass, wenn ich meinen Inhaltstyp in application / jsonrequest änderte, es ohne Probleme lief und ich die Daten in meinem Webserver verarbeiten konnte.
Nur für grins habe ich die oben erwähnte Zeile zu meiner web.config hinzugefügt, aber es hat keine Anwendung / json funktioniert.
nicht sicher, ob es so einfach sein könnte, aber ich benutze jQuery, um JSON von meinen Webmethoden zurückzurufen.
Der Hauptunterschied, den ich sehe, ist das Attribut der Klasse
%Vor%[System.Web.Script.Services.ScriptService]
Ich muss davon ausgehen, dass Sie das 3.5-Framework verwenden, da dies die einzige Möglichkeit ist, JSON-Webmethoden verfügbar zu machen.
Meine Aufrufe von jQuery sehen praktisch identisch aus, also kein Problem.
Wenn Sie dies in IE zu test, versuchen Sie die charset Erklärung von Ihrem content Attribute zu entfernen (das heißt es soll wie folgt aussehen:
%Vor% Ich habe noch, warum zu entdecken, aber IE scheint seine Knickerbocker in einer Torsion zu erhalten, wenn zu machen JSON mit dem „ charset=UTF-8
“ Teil nennen.
Ich glaube, Sie suchen die WebInvoke oder WebGet Attribut, es lässt Sie Uri Vorlage, Body-Style, Anfrage und responseformats angeben, zum Beispiel:
%Vor%Diese Verbindung helfen können. Es gibt einen ähnlichen Artikel für WebInvoke (meistens für Postsendungen verwendet).
Ich benutze JQuery AJAX JSON Aufrufe an ASMX Webservice ziemlich viel. Es funktioniert perfekt in allen Browsern. Ich verwende .NET 2.0 mit den installierten ASP.NET AJAX Extensions (gebündelt in 3.5).
Meine Klasse hat die gleichen Dekorateure wie Sie. Meine Methoden haben nur den [WebMethod(EnableSession = true)]
Decorator. Meine web.config hat jedoch den folgenden Eintrag in seinem httpHandlers-Abschnitt:
Mein jquery-Aufruf sieht folgendermaßen aus:
%Vor%Dieser Artikel ist die Wurzel von mein Wissen.
Tags und Links c# jquery asmx web-services sharepoint