带有laravel 5.2错误的AJAX请求

时间:2017-09-08 09:16:17

标签: php jquery ajax laravel

我在home.blade.php中有这个ajax请求:

function send(event) {
    event.preventDefault();

    $.ajax({
        headers: {'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content')},
        type: "POST",
        url: "{{ route('add_action') }}",
        data: {name: $("#name").val(), niceness: $("#niceness").val(), _token: "{{ Session::token() }}"}

    });

}

在控制器中我有这个postAction:

public function postInsertNiceAction(Request $request)
{
    $this->validate($request, [
        'name'     => 'required|alpha|unique:nice_actions',
        'niceness' => 'required|numeric',
    ]);

    $action = new  NiceAction();
    $action->name = ucfirst(strtolower($request['name']));
    $action->niceness = $request['niceness'];
    $action->save();
    $actions = NiceAction:: all();

    if ($request->ajax()) {
        return response()->json();
    }

    return redirect()->route('home');
}

我添加了这个元标记:

<meta name="_token" content="{{ csrf_token() }}">

所以当我运行这个时,我收到了这个错误:

  

jquery-1.12.0.min.js:4 POST http://localhost:8000/do/add_action 422(不可处理的实体)

我尝试更改jQuery文件的版本,但它无法正常工作。

任何帮助将不胜感激!

我是Laravel的新手。

谢谢

1 个答案:

答案 0 :(得分:0)

试试这个:

function send(event) {
    event.preventDefault();

    $.ajaxSetup({
        headers: {
            'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content')
        }
    })

    $.ajax({
        type: "POST",
        url: "{{ route('add_action') }}",
        data: { name: $("#name").val(), niceness: $("#niceness").val() },
    });