web-dev-qa-db-fra.com

Ajax LARAVEL 419 POST Erreur

J'apprécierais vraiment de l'aide sur ce sujet ... J'ai essayé des tonnes de solutions comme celles publiées sur ce forum, mais je ne peux pas le faire fonctionner. 

Mon appel ajax est quelque chose comme

$(document).ready(function() {
    $("#company").click(function() {
        $.ajax({
            type: "POST",
            dataType:'html',
            url : "/company",
            success : function (data) {
                $("#result").html(data);
            }
        });
    });
});

J'appelle la vue par mon itinéraire

Route::post('/company', 'Ajaxcontroller@loadContent');

Et contrôleur

public function loadContent()
    {
        return view('listing.company')->render();
    }

Mon entreprise.blade.php est 

    @foreach ($companies as $company)
            <div class="posting-description">
            <h5 class="header"><a href="#"></a>{{$company->name}}
            </h5>
            <h5 class="header"> {{$company->streetaddress}} {{$company->postalcode}}</h5>  
            <p class="header">
             <span class="red-text"> <?= $service; ?> </span> is available on <span class="green-text"><?php echo $date; ?></span>
           </p>
    @endforeach

Je reçois cette erreur

POST http://127.0.0.1:8234/company 419 (unknown status)
31
Cowgirl

Laravel 419 post erreur est généralement liée à api.php et autorisation de jeton

Laravel génère automatiquement un "jeton" CSRF pour chaque session d'utilisateur actif gérée par l'application. Ce jeton est utilisé pour vérifier que l'utilisateur authentifié est celui qui envoie réellement les demandes à l'application.

Ajoutez ceci à votre appel ajax

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

ou vous pouvez exclure certains URI dans le middleware de jeton VerifyCSRF

 protected $except = [
        'stripe/*',
    ];
66
Dhiraj

419 erreur se produit lorsque vous ne postez pas csrf_token. dans votre méthode de publication, vous devez ajouter ce jeton aux autres variables.

3
Adnan Rasheed

Dans votre action, vous devez d’abord charger des entreprises telles que:

$companies = App\Company::all();
return view('listing.company')->with('companies' => $companies)->render();

Cela rendra la variable company disponible dans la vue et devrait rendre le code HTML correctement.

Essayez d'utiliser postman chrome extension pour déboguer votre vue.

1
teeyo

J'ai eu le même problème, et cela a fini par être un problème avec la taille maximale du message php. Augmenter le problème a été résolu.

1

Dans laravel, vous pouvez utiliser view render . Ex. $ returnHTML = view ('myview') -> render (); myview.blade.php contient le code de votre lame

Avait le même problème, la régénération de la clé d'application a aidé - php artisan key:generate

0
EXayer

J'ai reçu cette erreur lorsque j'avais un fichier de configuration avec <?php sur la deuxième ligne au lieu de la première.

0
eli

Vous n'avez aucune donnée que vous soumettez! Essayez d'ajouter cette ligne à votre ajax:

data: $('form').serialize(),

Assurez-vous de changer le nom pour correspondre!

De plus, vos données doivent être soumises dans une fonction d'envoi de formulaire. 

Votre code devrait ressembler à ceci:

<script>
	$(function () {
		$('form').on('submit', function (e) {
			e.preventDefault();
			$.ajax({
				type: 'post',
				url: 'company.php',
				data: $('form').serialize(),
				success: function () {
					alert('form was submitted');
				}
			});
		});
	});
</script>

0
Tim Hinz