I'm trying to write a contact form with PHP, Ajax and JQuery.
The error is this:
Uncaught SyntaxError: Unexpected token < in JSON at position 0 at JSON.parse (
but I dont know what I'm doing wrong, because I copied and paste the code of some tutorial.
i´m using foundation6, php and ajax.
I think that the error is for JSON.parse but i don´t know how resolve
This is my code, you can help me? Thanks
contact.php
 <form method="post" id="formulario" data-abide novalidate action="<?php echo get_stylesheet_directory_uri(); ?>/src/assets/php/enviar.php">
                            <div class="campo">
                                <label for="nombre">Nombre: 
                                    <input type="text" id="nombre" placeholeder="Nombre" name="name" required>
                                    <span class="form-error">Error el nombre no puede ir vacio.</span>
                                </label>
                            </div>
                            <div class="campo">
                                <label for="email">Email: 
                                    <input type="text" id="email" placeholeder="Email" name="email" required pattern="email">
                                    <span class="form-error">Error correo vacio o invalido.</span>
                                </label>
                            </div> 
                            <div class="campo">
                                <label for="fecha">Mensaje: 
                                    <textarea name="mensaje" rows="6" required></textarea>
                                    <span class="form-error">Error correo vacio o invalido.</span>
                                </label>
                            </div> 
                            <div class="campo">
                                <input type="submit" name="enviar" value="Enviar" class="button explorar">
                            </div>
                        </form>
enviar.php
<?php 
    function is_ajax() {
        return isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest';
    }
if(is_ajax()) {
    $nombre = $_POST['nombre'];
    $email = $_POST['email'];
    $mensaje = $_POST['mensaje'];
    $header = 'From: ' . $email . "\r\n";
    $header .= "X-Mailer: PHP/" . phpversion() . "\r\n";
    $header .= "Mime-Version: 1.0 \r\n";
    $header .= "Content-Type: text/html";
    $mensajeCorreo = 'This message was sent by: ' . $nombre . "\r\n";
    $mensajeCorreo .= "Email: " . $email . "\r\n";
    $mensajeCorreo .= "Mensaje: " . $mensaje . "\r\n";
    $para = "email";
    $asunto = "Contacto de sitio web";
    mail($para, $asunto, utf8_encode($mensajeCorreo), $header );
    echo json_encode(array(
        'mensaje' => sprintf('El mensaje se ha enviado!')
    ));
} else {
    die("Prohibido!");
}
app.js
// Form Contact
$('#formulario')
.on("invalid.zf.abide", function(ev,elem) {
    swal(
        'Error!', 
        'El formulario se envio incompleto',
        'error'
    );
  })
  // form validation passed, form will submit if submit event not returned false
  .on("formvalid.zf.abide", function(ev,frm) {
      var formulario = $(this);
        $.ajax({
            type: formulario.attr('method'),
            url: formulario.attr('action'),
            data: formulario.serialize(),
            success: function(data) {
                    var resultado = data;
                    var respuesta = JSON.parse(resultado);
                  console.log(respuesta);
                  swal(
                      respuesta.message,
                      'Thank You, ' + respuesta.name + ' for your reservation!',
                      'success'
                  )
             }
        });
  })
  // to prevent form from submitting upon successful validation
  .on("submit", function(ev) {
    ev.preventDefault();
    console.log("Submit for form id "+ev.target.id+" intercepted");
  });
 
    