Laravel - Ajax
Ajax(异步 JavaScript 和 XML) 是一组 Web 开发技术,利用客户端使用的多种 Web 技术来创建异步 Web 应用程序。在视图文件中导入 jquery 库以使用 jquery 的 ajax 函数,这些函数将用于使用 ajax 从服务器发送和接收数据。在服务器端,您可以使用 response() 函数向客户端发送响应,并以 JSON 格式发送响应,您可以将 response 函数与 json() 函数链接起来。
json() 函数语法
json(string|array $data = array(), int $status = 200, array $headers = array(), int $options)
示例
步骤 1 −创建一个名为 resources/views/message.php 的视图文件,并将以下代码复制到该文件中。
<html> <head> <title>Ajax Example</title> <script src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"> </script> <script> function getMessage() { $.ajax({ type:'POST', url:'/getmsg', data:'_token = <?php echo csrf_token() ?>', success:function(data) { $("#msg").html(data.msg); } }); } </script> </head> <body> <div id = 'msg'>This message will be replaced using Ajax. Click the button to replace the message.</div> <?php echo Form::button('Replace Message',['onClick'=>'getMessage()']); ?> </body> </html>
步骤 2 − 通过执行以下命令创建一个名为 AjaxController 的控制器。
php artisan make:controller AjaxController --plain
步骤 3 − 成功执行后,您将收到以下输出 −
![AjaxController](/laravel/images/ajaxcontroller.jpg)
步骤 4 − 将以下代码复制到
app/Http/Controllers/AjaxController.php 文件中。
app/Http/Controllers/AjaxController.php
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Http\Requests; use App\Http\Controllers\Controller; class AjaxController extends Controller { public function index() { $msg = "This is a simple message."; return response()->json(array('msg'=> $msg), 200); } }
步骤 5 − 在 app/Http/routes.php 中添加以下几行。
app/Http/routes.php
Route::get('ajax',function() { return view('message'); }); Route::post('/getmsg','AjaxController@index');
步骤 6 − 访问以下 URL 以测试 Ajax 功能。
http://localhost:8000/ajax
步骤 7 −您将被重定向到一个页面,在该页面上您将看到如下图所示的消息。
![替换消息](/laravel/images/replace_message.jpg)
步骤 8 − 单击按钮后,输出将显示如下图所示。
![简单消息](/laravel/images/simple_message.jpg)