J'ai la requête Ajax Voici le code du script
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Variants; class VariantsController extends Controller { public function checkAttribute(Request $request) { if($request->ajax()){ return response()->json($request->all()); } } }
Quand je mets dans mon web.php le code
//web.php Route::post('/showVariantModel', 'VariantsController@checkAttribute'); //VariantsController.php public function checkAttribute() { if(Request::ajax()){ return var_dump(Response::json(Request::all())); }
Tout semble bien et je reçois la réponse dans mon alerte.
Mais quand je veux tout mettre dans le contrôleur, je reçois l'erreur 500 dans la console
Ci-dessous, j'ajouterai mon code à partir de mon web.php et de mon contrôleur. Le framework est Laravel 5.8
Route::post('/showVariantModel', function(){ if(Request::ajax()){ return var_dump(Response::json(Request::all())); } });
Qui sait ce que je fais de manière incorrecte, donnez un conseil…
Mise à jour de l'erreur
https://i.stack.imgur.com/iDvvG.jpg
Merci Md.Sukel Ali J'ai mis à jour mon contrôleur. Non ça a l'air
<script> $('#variant_model').change(function(){ var value = $('select#variant_model').val(); $.ajaxSetup({ headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') } }); $.ajax({ type:"POST", url: "showVariantModel", data: value, success: function(data){ alert(data); } }) }); </script>
Tout fonctionne bien maintenant. Merci.
3 Réponses :
La balise de fermeture est manquante
public function checkAttribute() { if(Request::ajax()){ return Response::json(Request::all()); } }
Vous devez ajouter des importations dans votre contrôleur:
use Illuminate/Http/Request; use Illuminate/Http/Response;
Au lieu d'aveugler devinez ce qui se passe sous le capot de l'appel ajax. Je vous suggère d'apprendre comment déboguer la requête ajax.
Allez dans votre navigateur, faites un clic droit et inspectez puis allez dans l'onglet Réseau pour voir votre demande. Cliquez sur votre demande puis recherchez l'onglet de réponse. Vous pouvez y trouver exactement ce qui s'est passé.
public function checkAttribute(Request $request) { if($request->ajax()) { return response()->json($request->all()); } }
Pouvez-vous vérifier le contenu de la réponse en cliquant sur la demande ayant échoué dans l'onglet Réseau de la console développeur, puis en cliquant sur la réponse?
fermez votre déclaration if
Vous n'avez pas besoin de mettre à jour votre question avec une réponse fonctionnelle. Gardez simplement la question originale pour référence future.