Así que estoy trabajando en un sitio web donde tengo que implementar un chat, actualmente todo se ejecuta en localhost. Estoy recibiendo este error:
SyntaxError: final inesperado de la entrada JSON
y no puedo entender por qué. He buscado en Google un poco pero no puedo encontrar una respuesta, eso realmente funciona. De hecho, hice esto ayer, en otra computadora y funcionó muy bien, pero hoy no funcionará y no puedo entender por qué.
Gracias por las excelentes respuestas.
$(function() { updateChat("updateChat", null); $(".chat-form").submit(function(event) { event.preventDefault(); if ($(".chat-form input").val() != "") { updateChat("sendMessage", $(".chat-form input").val()); } }); setInterval(function() { updateChat("updateChat", null); }, 3000); function updateChat(method, message) { $.ajax({ type: "POST", url: "action/chat.php", data: { function: method, message: message }, dataType: "json", success: function(data) { console.log(data); }, error: function (request, status, error) { console.log(error); } }) } })Lo más probable es que se muestre un error o una advertencia en su código PHP, y debido a que solo espera json, eso causa el error de sintaxis.
Hay algunas maneras de averiguar lo que está pasando:
html y verá su dataType console.log(data)Recibí este error debido a que mi función backend php NO devolvió una respuesta como debería haber sido. No devolvía nada. Mi función principal que debería haber devuelto la respuesta estaba llamando a una función secundaria que ESTABA devolviendo una respuesta, pero la función principal no estaba pasando ese regreso secundario a la llamada ajax.
Otro posible culpable de este tipo de errores podría ser un "shebang" de python inadecuado en su script de back-end (lado del servidor).
En mi caso particular, tuve una llamada ajax al script python cgi a través del servidor web Apache y no pude encontrar un mensaje de error más descriptivo en las herramientas de depuración de front-end. Sin embargo, los registros de Apache indicaron que el script de back-end tuvo problemas para importar uno de los scripts de python porque el intérprete no lo reconoció. Después de verificar el "shebang" de ese script de back-end, efectivamente, tenía el intérprete incorrecto especificado porque acabo de copiar un archivo de plantilla y olvidé modificarlo.
Por lo tanto, verifique su "shebang" en la parte superior de su secuencia de comandos para asegurarse de que apunte al intérprete correcto. Ejemplo: 