Puedo llamar a mi servicio web utilizando jQuery SI el contentType = "application/x-www-form-urlencoded; charset = utf-8 "El servicio web ASMX no devuelve JSON, solo puede POST usar application/x-www-form-urlencoded contentType
Esto, sin embargo, volver xml: <string>[myjson]</string>
Si trato de artículo al servicio utilizando "application/json; charset = UTF-8" recibo un error 500 con un StackTrace vacía y ExceptionType . Mi función de servicio web nunca se ve afectada, así que no estoy muy seguro de cómo solucionar esta situación.
Mis métodos y clases están decorados con los atributos adecuados y están configurados para usar JSON como su tipo de respuesta (al igual que mis archivos wsdl y disco). Tengo las extensiones Ajax instaladas y las entradas necesarias en web.config.
Esto se encuentra en una granja de servidores de SharePoint, pero no estoy seguro de que haga una gran diferencia. Implementé los cambios web.config en todos los WFE así como también instalé las extensiones ajax. De nuevo, el servicio funciona, simplemente no aceptará nada más que el tipo de contenido predeterminado.
No está seguro de lo que me falta aquí, amigos ...
mi ajax llamada:
$.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); }
});
Mi clase de servicio web:
[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 mismo ocurre en ASP.NET MVC 1.0 cuando se realiza una solicitud AJAX. –