Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

348
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!