Why if response is 200 I still parse error?

Hi I’ve got a parse error when I use javascript switch, ajax and php. Any help would be greatly appreciated! I’m not sure where the error could be, I’ve tested the php code without using ajax and it works fine but I’m wondering if I’ve missed something. I’ve also checked with the browser webmaster tool and I can see the status is 200

This is my javascript code:


$("#updateCertify").click(function (event) {

        event.preventDefault(event);

        var form = $('#updateCertify');

        $.ajax({

          url: form.action,
          type: form.method,
          data: $(form).serialize(),
          dataType: 'json',

        beforeSend: function() {
            $(".loader").show();
        },

        success: function(response) {

            $(".loader").hide();

            swal({
                    title: response.title,
                    text: response.message,
                    type: response.status
                },

                function() {
                    location.reload();
                }
            );
        },

        error: function(jqXHR, exception) {

            $(".loader").hide();

              if (jqXHR.status === 0) {

                  swal('Il server non risponde', 'Siamo spiacenti non è stato possibile eseguire questa operazione, per favore contatta l\'amministratore di sistema.', 'info');

              } else if (jqXHR.status == 404) {

                  swal('Errore 404', 'Siamo spiacenti non è stato possibile eseguire questa operazione, per favore contatta l\'amministratore di sistema.', 'info');

              } else if (jqXHR.status == 500) {

                  swal('Errore 500', 'Siamo spiacenti non è stato possibile eseguire questa operazione, per favore contatta l\'amministratore di sistema.', 'info');

              } else if (exception === 'parsererror') {

                  swal('Si è verificato un errore!', 'Siamo spiacenti non è stato possibile eseguire questa operazione, per favore contatta l\'amministratore di sistema.', 'info');

              } else if (exception === 'timeout') {

                  swal('Time Out', 'Siamo spiacenti non è stato possibile eseguire questa operazione, per favore contatta l\'amministratore di sistema.', 'info');

              } else if (exception === 'abort') {

                  swal('Richiesta Annullata', 'Siamo spiacenti non è stato possibile eseguire questa operazione, per favore contatta l\'amministratore di sistema.', 'info');

              } else {

                  swal('Errore non previsto', 'Siamo spiacenti non è stato possibile eseguire questa operazione, per favore contatta l\'amministratore di sistema.', 'info');
              }

          }

        });

});

This is the php code:

require_once('../../../config/connect.php');
header('Content-Type: application/json');

if ($_SERVER["REQUEST_METHOD"] == "POST") {

    $flat_id = $_POST['flatid'];

    $impianto_idraulico = isset($_POST['impianto_idraulico']) ? $_POST['impianto_idraulico'] : '0';
    $impianto_condizionamento = isset($_POST['impianto_condizionamento']) ? $_POST['impianto_condizionamento'] : '0';
    $impianto_gas = isset($_POST['impianto_gas']) ? $_POST['impianto_gas'] : '0';
    $impianto_ventilazione = isset($_POST['impianto_ventilazione']) ? $_POST['impianto_ventilazione'] : '0';
    $impianto_scarico = isset($_POST['impianto_scarico']) ? $_POST['impianto_scarico'] : '0';
    $impianto_elettrico = isset($_POST['impianto_elettrico']) ? $_POST['impianto_elettrico'] : '0';
    $impianto_telefonico = isset($_POST['impianto_telefonico']) ? $_POST['impianto_telefonico'] : '0';
    $impianto_sorveglianza = isset($_POST['impianto_sorveglianza']) ? $_POST['impianto_sorveglianza'] : '0';
    $impianto_antenna = isset($_POST['impianto_antenna']) ? $_POST['impianto_antenna'] : '0';

    $query_update_certification = mysqli_prepare($conn, "UPDATE km_flat_security SET km_flat_impianto_idraulico=?, km_flat_impianto_condizionamento=?, km_flat_impianto_gas=?, km_flat_impianto_ventilazione=?, km_flat_impianto_scarico=?, km_flat_impianto_elettrico=?, km_flat_impianto_telefonico=?, km_flat_impianto_sorveglianza=?, km_flat_impianto_antenna=? WHERE km_flat_flat_id=?");
    mysqli_stmt_bind_param($query_update_certification, 'iiiiiiiiii', $impianto_idraulico, $impianto_condizionamento, $impianto_gas, $impianto_ventilazione, $impianto_scarico, $impianto_elettrico, $impianto_telefonico, $impianto_sorveglianza, $impianto_antenna, $flat_id);
    mysqli_stmt_execute($query_update_certification);
    mysqli_stmt_close($query_update_certification);

    // Passo messaggio di risposta se l'operazione è andata a buon fine
    $response['title']  = 'Operazione eseguita con successo!';
    $response['message'] = 'Certificazioni immobile aggiornate con successo';
    $response['status']  = 'success';

    echo json_encode($response);

}else{

  header('Location: ' . BASE_URL . '/404.php');
  exit();

}

This is the error from webmaster tool


abort: function abort()
always: function always()
complete: function add()
done: function add()
error: function add()
fail: function add()
getAllResponseHeaders: function getAllResponseHeaders()
getResponseHeader: function getResponseHeader()
overrideMimeType: function overrideMimeType()
pipe: function then()
progress: function add()
promise: function promise()
readyState: 4
responseText: "<html lang=\"it\">\n\n    <head>\n        <meta charset=\"utf-8\" />\n        <title>Kondo Manager | Flat details</title>\n        <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n        <meta content=\"width=device-width, initial-scale=1\" name=\"viewport\" />\n        <meta content=\"Pagina per l'amministrazione degli immobili\" />\n        <meta content=\"Karibusana\" name=\"author\" />\n        <link href=\"//fonts.googleapis.com/css?family=Open+Sans:400,300,600,700&subset=all\" rel=\"stylesheet\" type=\"text/css\" />\n        <link href=\"../../layout/assets/global/plugins/font-awesome/css/font-awesome.min.css\" rel=\"stylesheet\" type=\"text/css\" />\n        <link href=\"../../layout/assets/global/plugins/simple-line-icons/simple-line-icons.min.css\" rel=\"stylesheet\" type=\"text/css\" />\n        <link href=\"../../layout/assets/global/plugins/bootstrap/css/bootstrap.min.css\" rel=\"stylesheet\" type=\"text/css\" />\n        <link href=\"../../layout/assets/global/css/components-rounded.min.css\" rel=\"stylesheet\" id=\"styl…"
setRequestHeader: function setRequestHeader()
state: function state()
status: 200
statusCode: function statusCode()
statusText: "OK"
success: function add()
then: function then()
__proto__: {…}
__defineGetter__: function __defineGetter__()
__defineSetter__: function __defineSetter__()
__lookupGetter__: function __lookupGetter__()
__lookupSetter__: function __lookupSetter__()
constructor: function Object()
hasOwnProperty: function hasOwnProperty()
isPrototypeOf: function isPrototypeOf()
propertyIsEnumerable: function propertyIsEnumerable()
toLocaleString: function toLocaleString()
toSource: function toSource()
toString: function toString()
unwatch: function unwatch()
valueOf: function valueOf()
watch: function watch()

[quote=“vincekaribusana, post:1, topic:284835, full:true”]
Hi I’ve got a parse error when I use javascript switch, ajax and php. Any help would be greatly appreciated! I’m not sure where the error could be, I’ve tested the php code without using ajax and it works fine but I’m wondering if I’ve missed something. I’ve also checked with the browser webmaster tool and I can see the status is 200[/quote]

The responseText is an HTML page. Are you expecting JSON or something else instead as a response?

Hi @Paul_Wilkins thanks for your answer i’ve fixed it in this way. I believe I wasn’t serialising the form correctly

$(function() {

    $("#updateCertifyForm").on("submit", function(event) {

        event.preventDefault();

        $.ajax({
            url: "../controllers/ctrl_admin_flat_app/ctrl_admin_update_flat_certifications.php",
            type: "post",
            data: $(this).serialize(),

            beforeSend: function() {
              $(".loader").show();
            },

            success: function(response) {

              $(".loader").hide();

              swal({
                      title: response.title,
                      text: response.message,
                      type: response.status
                  });

            },

            error: function(jqXHR, exception) {

                $(".loader").hide();

                  if (jqXHR.status === 0) {

                      swal('Il server non risponde', 'Siamo spiacenti non è stato possibile eseguire questa operazione, per favore contatta l\'amministratore di sistema.', 'info');

                  } else if (jqXHR.status == 404) {

                      swal('Errore 404', 'Siamo spiacenti non è stato possibile eseguire questa operazione, per favore contatta l\'amministratore di sistema.', 'info');

                  } else if (jqXHR.status == 500) {

                      swal('Errore 500', 'Siamo spiacenti non è stato possibile eseguire questa operazione, per favore contatta l\'amministratore di sistema.', 'info');

                  } else if (exception === 'parsererror') {

                      swal('Si è verificato un errore!', 'Siamo spiacenti non è stato possibile eseguire questa operazione, per favore contatta l\'amministratore di sistema.', 'info');

                  } else if (exception === 'timeout') {

                      swal('Time Out', 'Siamo spiacenti non è stato possibile eseguire questa operazione, per favore contatta l\'amministratore di sistema.', 'info');

                  } else if (exception === 'abort') {

                      swal('Richiesta Annullata', 'Siamo spiacenti non è stato possibile eseguire questa operazione, per favore contatta l\'amministratore di sistema.', 'info');

                  } else {

                      swal('Errore non previsto', 'Siamo spiacenti non è stato possibile eseguire questa operazione, per favore contatta l\'amministratore di sistema.', 'info');
                  }

            }

        });
    });

  });
2 Likes

This topic was automatically closed 91 days after the last reply. New replies are no longer allowed.