当前位置: 首页 > 面试题库 >

Laravel 5.3中ajax POST的最小工作示例

车嘉实
2023-03-14
问题内容

有人可以用一个完整的最小示例来解释Laravel 5.3中的ajax post方法吗?我知道网络上有一些资源,但是我想念一个简洁,直接的最小示例。


问题答案:

我假设您对模型-控制器-视图范例有基本的了解,对Laravel的基本了解,以及对JavaScript和JQuery的基本了解(为简单起见,我将使用它们)。

我们将创建一个编辑字段和一个发布到服务器的按钮。(这适用于Laravel 5.0至5.6的所有版本)

首先,您需要将路由添加到您的 route / web.php中 。就像您从普通视图中知道的那样,为视图创建一条路线:

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

您需要创建的第二条路由是处理ajax发布请求的路由。请注意,它正在使用 post 方法:

Route::post('/postajax','AjaxController@post');

2.控制器功能

在您创建刚才(第二)路线,控制器功能 AjaxController 被调用。因此创建控制

php artisan make:controller AjaxController

并在 app / Http / Controllers / 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



 类似资料:
  • 我想以正确的方式做到这一点,所以没有客户端和服务器的框架或附加件。我想像这里所描述的那样使用PHP的原生web套接字,但不会用深入的类使事情过于复杂... http://www.php.net/manual/en/intro.sockets.php 我已经整理了一些基本的JavaScript... > 如果有必要,如何确定服务器的PHP安装是否已经具有此套接字功能? 在示例中,请求实际上是作为还是

  • 我正在尝试强制块具有最小高度。但什么都没有继续发生。如果我使用高度而不是最小高度,那么高度有效,但固定。 FOP 合规性页面声称支持已完成,所以我想我做错了。https://xmlgraphics.apache.org/fop/compliance.html

  • 我使用给定的示例文件(https://github.com/tomwhite/hadoop-book/blob/master/input/ncdc/sample.txt)测试了这段代码。然而,当我根据我的数据文件修改映射器代码时,还原器从0%到33%,然后又回到0%。有没有人能帮我解释一下为什么会发生这种情况,或者我应该如何修改代码。我的数据看起来像:

  • 问题内容: 我已经尝试过但没有成功,以获取最低限度的工作示例。由于我不需要将大部分fortran代码公开给python,因此不需要f2py来包装大部分代码。另外,由于传递了可分配数组并使用了派生类型, 我特别希望f2py仅包装我创建的接口模块 (在以下示例中为“ main.f90”)。但是我在获取要单独编译以链接到我的主模块的其他模块时遇到了问题。 编码: 注意所有源文件都在一个目录中。 我创建了

  • 问题内容: 可以说有一个嵌套列表,例如: 在此函数上调用时: 收到的输出是 为什么以及如何运作?它有哪些用例? 问题答案: 如何在Python中比较列表和其他序列? 从字典上比较Python中的列表(和其他序列),而不是基于任何其他参数。 可以将序列对象与具有相同序列类型的其他对象进行比较。比较使用 字典 顺序:首先比较前两个项目,如果它们不同,则确定比较的结果;如果它们相等,则比较下两个项目,依

  • 我正试图通过C#最小化Microsoft Edge浏览器。除了微软Edge之外,其他浏览器如Chrome、Firefox、Internet Explorer都运行良好。 有人能帮帮我吗。