我在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的新手。
谢谢
答案 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() },
});