jon*_*ach 23 ajax post laravel
有人可以用Laravel 5.3中的ajax post方法解释一个完整的最小例子吗?我知道网上有一些资源,但我想念一个简洁,直截了当的最小例子.
jon*_*ach 63
我假设您对模型控制器视图范例有基本的了解,对Laravel的基本理解以及对JavaScript和JQuery的基本理解(我将出于简单的原因使用它).
我们将创建一个编辑字段和一个发布到服务器的按钮.(适用于Laravel 5.0到5.6的所有版本)
首先,您需要向routes/web.php添加路由.正如您从普通视图中所了解的那样,为视图创建一个路径:
Route::get('ajax', function(){ return view('ajax'); });
Run Code Online (Sandbox Code Playgroud)
您需要创建的第二个路由是处理ajax post请求的路由.请注意它正在使用post方法:
Route::post('/postajax','AjaxController@post');
Run Code Online (Sandbox Code Playgroud)
在您创建刚才(第二)路线,控制器功能后在AjaxController被调用.所以创建控制器
php artisan make:controller AjaxController
Run Code Online (Sandbox Code Playgroud)
并在app/Http/Controllers/AjaxController.php中添加包含以下行的函数post:
<?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);
}
}
Run Code Online (Sandbox Code Playgroud)
该函数已准备好通过Http请求接收数据,并返回一个json格式的响应(包含状态'success'和函数从请求中获得的消息).
在第一步中,我们定义了指向视图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>
Run Code Online (Sandbox Code Playgroud)
如果您想知道这个csrf-token的问题,请阅读https://laravel.com/docs/5.3/csrf
| 归档时间: |
|
| 查看次数: |
39771 次 |
| 最近记录: |