Estoy a punto de sacar el resto del pelo que tengo, así que por favor ayúdenme si saben cuál es el problema ... Gracias. Todas mis búsquedas en Google no han dado resultado tampoco.jquery ajax con asp.net no funciona
En primer lugar, estoy usando el formulario web jquery-1.7.2.min.js y ASP.net 2.0.
Estoy tratando de hacer una llamada ajax usando jquery pero sigo recibiendo mensajes de error de sintaxis/parse. Lo intenté de muchas maneras diferentes, pero todas dieron como resultado el error cuando configuré el tipo de datos en json.
Esto es lo que tengo:
$.ajax({
type: "POST",
url: "UserList.aspx/GetTestJson",
data: {}, //have also tried "{}" and other options such as removing the line
contentType: "application/json;charset=utf-8",
dataType: "json",
success: function(data, textStatus, jqXHR){
alert('success');
},
//Using below instead of above makes no difference either
//success: function(data){
// alert('success');
//},
error: function(jqXHR, textStatus, errorThrown){
alert('errorThrown: ' + errorThrown);
}
});
y el método aspx:
[WebMethod]
public static string GetTestJson()
{
return "Hello My World";
}
He tratado de establecer un servicio web también, pero conseguir el mismo resultado. Parece que la respuesta que se devuelve es el html completo de la página o el xml del servicio web y, debido a que configuré el tipo de datos en json, no fue exitoso al analizarlo. Si este es el caso, ¿cómo configuro la respuesta solo para devolver json?
Aquí es otra cosa que he intentado sin suerte: los mensajes
[WebMethod]
public static string GetTestJson()
{
HttpContext.Current.Response.ContentType = "application/json";
string json = JavaScriptConvert.SerializeObject("Hello My World");
return json;
}
error que consigo a través de jQuery:
errorThrown.message = "Syntax error"
errorThrown.number = -2146827286
errorThrown.name = "SyntaxError"
textStatus = "parseerror"
jqXHR.status = 200
jqXHR.statusText = "OK"
jqXHR.readyState = 4
jqXHR.responseText = (the complete html of the page)
Cualquier idea o sugerencia?
Gracias
El simple hecho de configurar el encabezado HTTP Content-type en realidad no cambia mágicamente el contenido de la respuesta. Necesita convertir datos a JSON usted mismo. Además, [WebMethod] generalmente se usa para servicios SOAP, no para servicios web de estilo RESTful. – Dai
Eso es parcialmente cierto, los PageMethods se usan específicamente en escenarios AJAX, establecen el tipo de respuesta en json de forma predeterminada – Jupaol
Puede publicar el error exacto que está recibiendo – Jupaol