从Laravel中的外部表单中恢复发布数据

时间:2017-12-21 08:56:28

标签: jquery ajax laravel-5 ajaxform

我的问题如下: 我有一个HTML格式的外部表单,我必须使用AJAX将数据发送到Laravel应用程序。 所以我在客户端创建了一个简单的表单(http://localhost/myLaravelForm):

<form action="http://localhost/laravelApp/public/task/addAjax" id="addNewTask" method="post">
    <label>Add task : </label>
    <input type="text" name="name" id="task-name">
    <button type="submit" id="addTask">Send</button>
</form>

在客户端,我创建了一个AJAX:

$(document).ready(function() {

    $(function () {

       $('addNewTask').on('submit', function () {

            var taskName = $('#task-name').val();
            var csrf_token = '<%= token_value %>';

            $.ajax({
                method: "POST",
                url: "http://localhost/monSuperProjet/public/task/addAjax",
                dataType: "JSON",
                data: {
                    "name": taskName,
                    "token": CSRF_TOKEN
                },
                error: function (data) {
                   //something went wrong with the request
                    alert("Error");
                },
                success: function (data) {
                    console.log (data); 
                }
            });
           event.preventDefault();
        });

现在在服务器端我创建了一个名为Ajax的控制器:

class Ajax extends Controller
{
    public function receiveValues(Request $request) {
        var_dump (Task::find($request->input('name')))

    }
}

并创建了一条路线:

Route::post('/task/addAjax','Ajax@receiveValues');

不幸的是,我有可怕的错误.. 我是Laravel&amp; amp; Ajax,最常见的是编码。我们了解我们的错误:)) 我试图找出一些答案,但没有成功...... 谢谢你的帮助

1 个答案:

答案 0 :(得分:0)

在刀片中使用以下形式:

 <form action="{{ url('/task/addAjax') }}" id="addNewTask" method="post">
        {{ csrf_field() }}
        <input name="_token" type="hidden" id="_token" value="{{ csrf_token() }}" />
        <label>Add task : </label>
        <input type="text" name="name" id="task-name">
        <button type="submit" id="addTask">Send</button>
    </form>

如果你的使用表格提交,那你为什么要做ajax。如果您对ajax感兴趣,请将表单中的操作值设置为action="",然后执行您的ajax。如果你想通过ajax来做,那就试试这个(但设置action =“”):

$.ajaxSetup(
        {
          headers:
          {
            'X-CSRF-Token': $('input[name="_token"]').val()
          }
        });
        $.ajax({
          "Your code comes here".
        });