Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

357
Vistas
La llamada AJAX falla con SyntaxError: final inesperado de la entrada JSON

Lo siento por hacer una publicación con un error genérico, ¡pero no puedo entender esto! Tengo una llamada ajax que por ahora envía un objeto vacío y solo devuelve json_encode(array('status' => 'success')); mientras estoy depurando. La llamada ajax está fallando con Error en la llamada ajax. Error: SyntaxError: final inesperado de la entrada JSON

Intenté enviar solo datos ['pid'] = 'csv' en caso de que el json necesitara tener algo, pero sigo recibiendo el mismo error.

Llamada AJAX

 function runDataDownload() { var data = {}; // data['rawFiles'] = $('#projectIDs').val(); // data['metadata'] = $('#getData').val(); // data['type']= $('#submitType').val(); // data['pid']='csv'; // data['command']='data/qcTest'; console.log(data); console.log(typeof data) var qcRunId="csv" + Date.now(); var posturl = baseURL + "manage/ajax_runBg/csv/" + qcRunId; $.ajax({type: "POST", url: posturl, data: data, dataType: 'json'}) .done(function(result) { console.log(result); if (result.status==='success'){ // begin checking on progress checkRunStatus(qcRunId, loopIndex); } else if (result.status==='failed'){ $('#' + errorId + ' > li').remove(); $.each(result.errors, function(key, value) { $('#' + errorId).append( "<li>" + value + "</li>" ); }); $('#' + statusId).hide(); $('#' + errorId).show(); } else { $('#' + errorId + ' > li').remove(); $('#' + errorId).append( "<li>Invalid return from ajax call</li>" ); $('#' + errorId).show(); // PTODO - may not be needed // make sure it is visible $('#' + errorId).get(0).scrollIntoView(); } }) .fail(function(jqXHR, status, err) { console.log(jqXHR + status + err); $('#' + errorId + ' > li').remove(); $('#' + errorId).append( `<li>Error in ajax call. Error: ${status} (${err.name}: ${err.message})</li>`); $('#' + errorId).show(); }); }

Y mi código php:

 public function ajax_runBg($qcName, $runId) { echo json_encode(array('status' => 'success')); }

¡Gracias!

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Algo parece borrar el búfer de salida de PHP después de llamar a ajax_runBg . Verifique esto agregando ob_flush(); flush(); a ajax_runBg después de la declaración de eco.

over 4 years ago · Santiago Trujillo Denunciar

0

Perdón por responder, cuando no tengo una completa, no tengo suficiente reputación para comentar.

Ejecuté este código (eliminé las variables que no tengo) y no obtuve ningún error (no hay nada malo con "echo json_encode(array('status' => 'success'));").

Aquí hay algunas posibles razones por las que falla: Su problema podría ser que el php no hace eco de nada.

Una vez tuve este problema y lo solucioné haciendo primero una variable de json_encode ("cosas para codificar") y luego haciendo eco en esa variable.

¿Hay más en el archivo php que no mostraste? Podría haber un problema si hay otras cosas que se repiten.

over 4 years ago · Santiago Trujillo Denunciar

0

Al enviar json, primero debe codificarlo como json, entonces:

 $.ajax({type: "POST", url: posturl, data: JSON.stringify(data), dataType: 'json'})

JSON.stringify

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda