Saltar al contenido

La solicitud Ajax devuelve 200 OK, pero se activa un evento de error en lugar de éxito

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 dataTypes (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
});
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *