Foros del Web » Programando para Internet » Jquery »

Error 500 provocado por jquery

Estas en el tema de Error 500 provocado por jquery en el foro de Jquery en Foros del Web. Hola a todos, quería hacerles una consulta verán estuve haciendo un curso de Symfony2 en youtube el cual terminé pero en la última se usa ...
  #1 (permalink)  
Antiguo 17/07/2017, 22:28
Avatar de detective_jd  
Fecha de Ingreso: abril-2011
Ubicación: Salto
Mensajes: 437
Antigüedad: 13 años
Puntos: 6
Error 500 provocado por jquery

Hola a todos, quería hacerles una consulta verán estuve haciendo un curso de Symfony2 en youtube el cual terminé pero en la última se usa jquery y ajax, el cual me genera el error de status 500 y mostrándome esto en la consola:

jquery-3.2.1.min.js:4 POST http://localhost/Tareas/web/app_dev.php/task/process/3 500 (Internal Server Error)
send @ jquery-3.2.1.min.js:4
ajax @ jquery-3.2.1.min.js:4
r.(anonymous function) @ jquery-3.2.1.min.js:4
(anonymous) @ task-process.js:10
dispatch @ jquery-3.2.1.min.js:3
q.handle @ jquery-3.2.1.min.js:3

Este es el script:

Código Javascript:
Ver original
  1. $(document).ready(function(){
  2.     $('.btn-process').click(function (e) {
  3.         e.preventDefault();        
  4.         var row = $(this).parents('tr');
  5.         var id = row.data('id');
  6.         var form = $('#form-update');
  7.         var url = form.attr('action').replace(':TASK_ID', id);
  8.         var data = JSON.stringify(form.serialize());
  9.         $('#button-' + id).addClass('disabled');        
  10.         $.post(url, data, function(result) {
  11.             $('#button-' + id).removeClass('disabled');
  12.             if(result.processed == 1) {
  13.                 $('#message-warning').addClass("hidden");                
  14.                 $('#message').removeClass("hidden");                
  15.                 $('#glyphicon-' + id).removeClass('glyphicon-time text-danger').addClass('glyphicon-ok text-success');
  16.                 $('#glyphicon-' + id).prop('title', 'Finish');                
  17.                 $('#user-message').html('The task has been finish.');
  18.             } else {
  19.                 $('#message').addClass("hidden");
  20.                 $('#message-warning').removeClass("hidden");
  21.                 $('#user-message-warning').html('The task was already finished.');
  22.             }
  23.         }).fail(function () {
  24.             alert('The task was not finished.')
  25.         });
  26.     });
  27. });

y me muestra el mensaje del fail y no sé cómo terminar con esto.

Espero sus respuestas y saludos.
  #2 (permalink)  
Antiguo 18/07/2017, 19:09
Avatar de detective_jd  
Fecha de Ingreso: abril-2011
Ubicación: Salto
Mensajes: 437
Antigüedad: 13 años
Puntos: 6
Respuesta: Error 500 provocado por jquery

Problema resuelto, resulta que me faltaba importar el response.php de Symfony para que andara bien.

Código PHP:
Ver original
  1. <?php
  2. namespace UserBundle\Controller;
  3. use Symfony\Bundle\FrameworkBundle\Controller\Controller;
  4. use Symfony\Component\HttpFoundation\Request;
  5. use Symfony\Component\HttpFoundation\Response;
  6. use \UserBundle\Entity\Task;
  7. use \UserBundle\Form\TaskType;
  8. class TaskController extends Controller
  9. {
  10.     ...........
  11.     public function customAction(Request $request) {
  12.         $idUser = $this->get('security.token_storage')->getToken()->getUser()->getId();        
  13.         $em = $this->getDoctrine()->getManager();
  14.         $dql = "SELECT t FROM UserBundle:Task t JOIN t.user u WHERE u.id = :idUser ORDER BY t.id DESC";        
  15.         $tasks = $em->createQuery($dql)->setParameter('idUser' , $idUser);        
  16.         $paginator = $this->get('knp_paginator');
  17.         $pagination = $paginator->paginate(
  18.             $tasks,
  19.             $request->query->getInt('page', 1),
  20.             3
  21.         );        
  22.         $updateForm = $this->createCustomForm(':TASK_ID', 'PUT', 'task_process');        
  23.         return $this->render('UserBundle:Task:custom.html.twig',[
  24.             'pagination' => $pagination,
  25.             'update_form' => $updateForm->createView()
  26.         ]);
  27.     }
  28.    
  29.     public function processAction($id, Request $request) {
  30.         $em = $this->getDoctrine()->getManager();
  31.         $task = $em->getRepository('UserBundle:Task')->find($id);        
  32.         if(!$task) {
  33.             throw $this>createNotFoundException('La tarea no existe');
  34.         }        
  35.         $form = $this->createCustomForm($task->getId(), 'PUT', 'task_process');
  36.         $form->handleRequest($request);        
  37.         if($form->isSubmitted() && $form->isValid()) {
  38.             $success = $this->get('translator')->trans('The task has been processed.');
  39.             $warning = $this->get('translator')->trans('The task has already been processed.');
  40.             if ($task->getStatus() == 0) {
  41.                 $task->setStatus(1);
  42.                 $em->flush();                
  43.                 if($request->isXMLHttpRequest()) {
  44.                     return new Response(
  45.                         json_encode(['processed' => 1, 'success' => $success]),
  46.                         200,
  47.                         array('Content-Type' => 'application/json')
  48.                     );
  49.                 }
  50.             } else {
  51.                 if($request->isXMLHttpRequest()) {
  52.                     return new Response(
  53.                         json_encode(['processed' => 0, 'warning' => $warning]),
  54.                         200,
  55.                         array('Content-Type' => 'application/json')
  56.                     );
  57.                 }            
  58.             }
  59.         }
  60.     }
  61. }

Pongo lo que se necesita del controlador para que ande lo de jquery por si alguien lo quiere.

Saludos
  #3 (permalink)  
Antiguo 20/07/2017, 11:17
 
Fecha de Ingreso: octubre-2007
Mensajes: 273
Antigüedad: 16 años, 6 meses
Puntos: 5
Respuesta: Error 500 provocado por jquery

detective_jd, un error 500 no te lo generárá JQuery, en todo caso lo genera el servidor web. Siempre podrás apoyarte en el archivo de log de symfony, allí podrás leer detenidamente el error generado. Incluso cuando haces una petición vía ajax, podrás ver todo el resultado en la barra de depuración del symfony, en la sección Ajax Request, o mediante las heramientas de desarrollo de tu navegador.

Etiquetas: 500
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:16.