Posso chiamare il mio webservice utilizzando jQuery SE il contentType = "application/x-www-form-urlencoded; charset = utf-8 "Il servizio web ASMX che non restituisce JSON, può solo POST utilizzare content/x-www-form-urlencoded contentType
Ciò, tuttavia, riportare il xML: <string>[myjson]</string>
Se provo POST al servizio utilizzando "application/json; charset = utf-8" ricevo un errore 500 con StackTrace vuoto e ExceptionType . La mia funzione di webservice non viene mai toccata, quindi non sono abbastanza sicuro di come eseguire il debug di questa situazione.
I miei metodi e classi sono decorati con gli attributi appropriati e sono impostati per utilizzare JSON come tipo di risposta (come i miei file wsdl e disco). Ho installato le estensioni Ajax e le voci richieste in web.config.
Questo è in una farm di SharePoint, ma non sono sicuro che faccia troppa differenza. Ho distribuito le modifiche di web.config su tutti i WFE e installato le estensioni ajax. Ancora una volta il servizio funziona, semplicemente non accetterà nulla se non il tipo di contenuto predefinito.
Non so cosa mi manca qui, ragazzi ...
mio ajax chiamata:
$.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); }
});
La mia classe webservice:
[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";
}
}
Lo stesso accade su ASP.NET MVC 1.0 durante l'esecuzione della richiesta AJAX. –