Ich kann meinen Webservice mit jQuery WENN der contentType = "application/x-www-form-urlencoded; charset = utf-8 "ASMX Webservice gibt JSON nicht zurück, kann nur POST mit der Anwendung/x-www-form-urlencoded contentType
Dies wird jedoch, senden Sie das xml: <string>[myjson]</string>
Wenn ich versuche, den Dienst POST mit "application/json; charset = utf-8" ich erhalte einen 500-Fehler mit leeren Stacktrace und Exception . 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 sind so eingestellt, dass sie JSON als Antworttyp verwenden (wie auch meine WSDL- und DISCO-Dateien). Ich habe die Ajax-Erweiterungen installiert und die erforderlichen Einträge in web.config.
Dies ist auf einer SharePoint-Farm, aber ich bin mir nicht sicher, dass das zu viel Unterschied macht. Ich habe die web.config-Änderungen auf allen WFEs installiert sowie die Ajax-Erweiterungen installiert. Auch hier funktioniert der Dienst, er akzeptiert nur den Standard-Inhaltstyp.
nicht sicher, was ich bin fehlt hier, fellas ...
meine Ajax-Aufruf:
$.ajax({
type: "POST",
url: "/_vti_bin/calendar.asmx/Test",
dataType: "json",
data: "{}",
contentType: "application/json; charset=UTF-8",
success: function(msg){
alert(msg);
},
error: function(xhr, msg){ alert(msg + '\n' + xhr.responseText); }
});
Meine WebService-Klasse:
[WebService(Namespace = "http://namespace")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ScriptService()]
public class CalendarService : WebService
{
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string Test()
{
return "Hello World";
}
}
Das gleiche passiert bei ASP.NET MVC 1.0 beim Ausführen einer AJAX-Anfrage. –