2017-02-01 2 views
3

Kann jemand bitte die Ajax-Post-Methode in Laravel 5.3 mit einem voll funktionsfähigen Minimum Beispiel erklären? Ich weiß, dass es einige Ressourcen im Web gibt, aber ich vermisse ein prägnantes, geradliniges minimales Beispiel.ME für Ajax POST in Laravel 5.3

Antwort

7

Ich nehme an, Sie haben ein grundlegendes Verständnis des Model-Controler-View-Paradigmas, ein grundlegendes Verständnis von Laravel und ein grundlegendes Verständnis von JavaScript und JQuery (die ich aus Gründen der Einfachheit verwenden werde).

Wir werden ein Eingabefeld und eine Schaltfläche, die Beiträge an den Server

1. Die Routen

Zuerst Sie Routen an Ihren Routen/web.php hinzufügen müssen erstellen. Erstellen Sie eine Route für die Ansicht, wie Sie es von gewöhnlichen Ansichten kennen:

Route::get('ajax', function(){ return view('ajax'); }); 

Die zweite Route, die Sie erstellen müssen die Strecke ist, die die Ajax-Post-Anforderung verarbeitet. Zur Kenntnis nehmen, dass es die Post Methode verwendet:

Route::post('/postajax','[email protected]'); 

2. Die Regler Funktion

In der (zweiten) Route, die Sie gerade erstellt, die Reglerfunktion Post im AjaxController wird genannt. So erstellen Sie den Controller

php artisan make:controller AjaxController 

und in den app/Http/Controller/AjaxController.php fügen Sie die Funktion Post enthält die folgenden Zeilen:

<?php 
namespace App\Http\Controllers; 
use Illuminate\Http\Request; 


class AjaxController extends Controller { 

    public function post(Request $request){ 
     $response = array(
      'status' => 'success', 
      'msg' => $request->message, 
    ); 
     return response()->json($response); 
    } 
} 

Die Funktion ist bereit, Daten zu empfangen über eine HTTP-Anfrage und gibt eine json-formatierte Antwort zurück (die aus dem Status 'Erfolg' und der Nachricht besteht, die die Funktion von der Anfrage erhalten hat).

3. Die Ansicht

Im ersten Schritt werden wir die Route zu der Ansicht Ajax zeigen definiert, schaffen so jetzt die Ansicht ajax.blade.php.

<!DOCTYPE html> 
<html> 
<head> 

    <!-- load jQuery --> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 

    <!-- provide the csrf token --> 
    <meta name="csrf-token" content="{{ csrf_token() }}" /> 

    <script> 
     $(document).ready(function(){ 
      var CSRF_TOKEN = $('meta[name="csrf-token"]').attr('content'); 
      $(".postbutton").click(function(){ 
       $.ajax({ 
        /* the route pointing to the post function */ 
        url: '/postajax', 
        type: 'POST', 
        /* send the csrf-token and the input to the controller */ 
        data: {_token: CSRF_TOKEN, message:$(".getinfo").val()}, 
        dataType: 'JSON', 
        /* remind that 'data' is the response of the AjaxController */ 
        success: function (data) { 
         $(".writeinfo").append(data.msg); 
        } 
       }); 
      }); 
     });  
    </script> 

</head> 

<body> 
    <input class="getinfo"></input> 
    <button class="postbutton">Post via ajax!</button> 
    <div class="writeinfo"></div> 
</body> 

</html> 

Wenn Sie sich fragen, was ist los mit diesen csrf-Token, https://laravel.com/docs/5.3/csrf

+0

ehrfürchtige Antwort las, ist alles hier für erstes Mal, wie ich –