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

282
Views
Cómo pasar datos de ajax a laravel 5.2 controlador a través del método de publicación

Hola familia StackOverflow. Esta es mi primera pregunta y espero obtener ayuda.

Soy nuevo en el marco de laravel y estoy usando la versión 5.2 en mi proyecto. Estoy tratando de pasar datos usando el método de publicación de mi función ajax a un método de controlador en particular, pero no se pasan datos al controlador.

Seguí los pasos en este foro https://laracasts.com/discuss/channels/laravel/process-data-in-controller-using-ajax-in-laravel pero no puedo hacerlo funcionar. Esto es lo que he hecho hasta ahora.

Mi JavaScript ( post_script.js ):

 $.ajax({ method: 'POST', url: './home', data: { userID: 76, userName: 'Jimmy' }, });

Tenga en cuenta que este archivo se guarda en el directorio assets/js en la estructura laravel. Esto es lo que tengo en mi archivo de ruta ( routes.php ):

 Route::get('/', "MyController@home"); Route::get('home', "MyController@home");

Aquí está la función que tengo en el archivo MyController.php :

 function home(Request $request) { $userID = $request['userID']; $userName = $request['userName']; return view('home', [ 'userID'=> $userID, 'userName' => $userName ]); }

En mi opinión, traté de acceder a él de esta manera:

 <p>User ID: {{$userID}}</p> <p>User Name: {{$username}}</p>

¡No se muestra nada! Por favor, ¿qué estoy haciendo mal? Necesito tu ayuda. Perdóname si mi pregunta no es adecuada, pero espero que entiendas lo que quiero decir. Gracias

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Su AJAX está publicando, pero no tiene configurada una ruta POST, solo GET. Agregue una ruta POST, así:

 Route::post('home', "MyController@home");
over 4 years ago · Santiago Trujillo Report

0

Primero verifique con su desarrollador/herramienta de red (por ejemplo, firebug) si su llamada ajax llega al controlador/funciones deseadas y si los parámetros se reenvían correctamente.

Una forma segura de especificar Url en la llamada ajax en el entorno Laravel es usar la fachada de URL de esta manera:

 url: "{{ URL::to('home'); }}",

Sin embargo, para hacerlo así, debe almacenar su js como un archivo myscript.blade.php (!!) e @incluirlo en su vista en consecuencia.

Para recibir sus parámetros publicados en la función del controlador, no es necesario declarar los argumentos de la función, simplemente puede usar la función Input::Get(), por ejemplo. Me gusta esto:

 public function home() { $userID = Input::Get('userID'); $userName = Input::Get('userName'); return view('home', [ 'userID'=> $userID, 'userName' => $userName ]); }
over 4 years ago · Santiago Trujillo Report

0

Si intenta realizar una solicitud POST, es posible que necesite tener X-CSRF-Token .

Agregue esto a la meta:

 <meta name="csrf-token" content="{{ csrf_token() }}">

Y configura tu AJAX:

 $.ajaxSetup({ headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') } });

En documentos de Laravel: https://laravel.com/docs/5.2/routing#csrf-x-csrf-token

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!