Solución:
jQuery.ajax
intenta convertir el cuerpo de la respuesta en función de la especificación dataType
parámetro o el Content-Type
encabezado enviado por el servidor. Si la conversión falla (por ejemplo, si el JSON / XML no es válido), se activa la devolución de llamada de error.
Su código AJAX contiene:
dataType: "json"
En este caso jQuery:
Evalúa la respuesta como JSON y devuelve un objeto JavaScript. […]
Los datos JSON se analizan de forma estricta; se rechaza cualquier JSON con formato incorrecto y se genera un error de análisis. […] también se rechaza una respuesta vacía; el servidor debería devolver una respuesta nula o {} en su lugar.
Su código del lado del servidor devuelve un fragmento HTML con 200 OK
estado. jQuery esperaba un JSON válido y, por lo tanto, activa la devolución de llamada de error quejándose parseerror
.
La solución es eliminar el dataType
parámetro de su código jQuery y haga que el código del lado del servidor regrese:
Content-Type: application/javascript
alert("Record Deleted");
Pero prefiero sugerir devolver una respuesta JSON y mostrar el mensaje dentro de la devolución de llamada exitosa:
Content-Type: application/json
{"message": "Record deleted"}
Tuve buena suerte con el uso de varios espacios separados dataType
s (jQuery 1.5+). Como en:
$.ajax({
type: 'POST',
url: 'Jqueryoperation.aspx?Operation=DeleteRow',
contentType: 'application/json; charset=utf-8',
data: json,
dataType: 'text json',
cache: false,
success: AjaxSucceeded,
error: AjaxFailed
});
Simplemente tienes que quitar el dataType: “json” en tu llamada AJAX
$.ajax({
type: 'POST',
url: 'Jqueryoperation.aspx?Operation=DeleteRow',
contentType: 'application/json; charset=utf-8',
data: json,
dataType: 'json', //**** REMOVE THIS LINE ****//
cache: false,
success: AjaxSucceeded,
error: AjaxFailed
});