Может кто-нибудь объяснить метод ajax post в Laravel 5.3 с полным рабочим минимальным примером? Я знаю, что в Интернете есть некоторые ресурсы, но я скучаю по краткому, прямому минимальному примеру.ME для ajax POST в Laravel 5.3
ответ
Предполагаю, что у вас есть базовое представление о парадигме модели-контроля, базовом понимании Laravel и базовом понимании JavaScript и JQuery (которые я буду использовать по причинам простоты).
Мы создадим поле редактирования и кнопка, которая сообщения на сервер
1. Маршруты
На первом вам нужно добавить маршруты к вашим маршрутам/web.php. Создать один маршрут для зрения, так же, как вы знаете, от обычных видов:
Route::get('ajax', function(){ return view('ajax'); });
Второй маршрут вам нужно создать это маршрут, который обрабатывает запрос Ajax пост. Заметьте, что он использует пост метод:
Route::post('/postajax','[email protected]');
2. Контроллер Функция
В (второй) маршрут, созданный только сейчас, функция контроллера пост в AjaxController называется. Так создать контроллер
php artisan make:controller AjaxController
и в приложение/Http/Контроллеры/AjaxController.php добавить функцию пост, содержащий следующие строки:
<?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);
}
}
Функция готова к приему данных через запрос Http и возвращает ответ в формате json (который состоит из статуса «успех» и сообщение, полученное функцией от запроса).
3. Вид
На первом этапе мы определили маршрут, указывающий на вид AJAX, так что теперь создать представление 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>
Если вам интересно, что случилось с этим CSRF-токен, прочитать https://laravel.com/docs/5.3/csrf
удивительный ответ, все здесь в первый раз, как я –