在 Laravel 5.2 中通过 RESTful 资源控制器使用 jQuery Ajax Post 方法将数据存储在数据库中

Posted

技术标签:

【中文标题】在 Laravel 5.2 中通过 RESTful 资源控制器使用 jQuery Ajax Post 方法将数据存储在数据库中【英文标题】:Storing data in datebase using jQuery Ajax Post mathod via RESTful Resource Controller in Laravel 5.2 【发布时间】:2016-05-16 09:38:13 【问题描述】:

我是 Laravel 的新手。我正在尝试使用 Jquery Ajax(使用 POST 方法)将一些数据存储在表单中。我正在使用 RESTful 资源控制器来处理存储请求。当使用带有 POST 方法的表单时,可以将路由用作/student/store。但是我们如何在此方法中路由到控制器中的 store 方法。简化代码如下。需要帮助。

("#btnSave").click(function()
    console.log("btnSave");
    $.post("/student",
            
        name: $("#studentname").val(),
        age: $("#studentage").val(),
        marks: $("#marks").val()

    ,function(data, status)
        alert("Data: " + data + "\nStatus: " + status);
    );
);

【问题讨论】:

【参考方案1】:

有了资源路由,

Route::resource('student', 'StudentController');

POST 请求默认路由到store() 方法。您可以通过在控制台中执行以下操作来查看 url:

php artisan route:list | grep student

如果您手动将表单字段添加到 ajax 请求中,您会忘记 CSRF 令牌。如果隐藏的 _token 字段丢失,请在表单中添加以下内容:

 csrf_field() 

并更新您的 ajax 请求以反映新的 _token 字段:

$.post("/student",
        
    name: $("#studentname").val(),
    age: $("#studentage").val(),
    marks: $("#marks").val(),
    '_token': $('input[name="_token"]').val()

【讨论】:

以上是关于在 Laravel 5.2 中通过 RESTful 资源控制器使用 jQuery Ajax Post 方法将数据存储在数据库中的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Artisan 命令 (PHP) 在 Laravel 5.2 中创建 RESTful 资源控制器

在 Spring Boot 中通过 RESTful Web 服务生成 JSON?

在 Laravel 中通过 Ajax 存储数据失败

在laravel中通过vuejs创建数组?

在 Laravel 4 中通过迁移脚本创建 MySQL 视图

在 laravel 中通过 ajax 返回视图