我进行了ajax调用,但不断出现此错误:
419 (unknown status)
我包含在元标记中:
<meta name="csrf-token" content="{{ csrf_token() }}">
我的桌子(无表格):
<table class="table" id="dataTables">
<thead>
<tr>
<td>Full nametd>
<td class="text-center">Lớp</td>
<td class="text-center"><input type="checkbox" id="select_all"></td>
</tr>
</thead>
</table>
我使用DataTables库从Controller加载所有数据:
var table = $('#dataTables').DataTable({
"pagingType": "full_numbers",
"processing": true,
"serverSide": true,
"lengthMenu": [[5, 10, -1], [5, 10, "All"]],
"iDisplayLength": 5,
"ordering": false,
"ajax": '{!! url(Request::segment(1).'/lists?class_id='.Input::get('class_id')) !!}',
'createdRow': function (row, data, dataIndex) {
$(row).attr('id', data.id);
},
"columns": [
...
{
"data": "id", "sClass": "text-center",
"fnCreatedCell": function (nTd, sData, oData, iRow, iCol) {
$(nTd).html("<input type='checkbox' name='check[]' value='" + oData.id + "'>");
}
},
],
"language": {
"url": "{{url('public/extension/datatables/vietnamese.json')}}"
}
});
我的Ajax:
$('#save').click(function () {
$.ajax({
type: 'POST',
url: "{{url('class/store')}}",
cache: false,
data: {"check": sThisVal }, //sThisVal get all input checkbox checked
success: function (r) {
$('#msg').html(r);
},
error: function (jqXHR, text, errorThrown) {
$('#msg').html(jqXHR + " " + text + " " + errorThrown);
}
});
});
我的路线:
Route::post('class/lists', 'ClassController@lists');
我的控制器方法
public function store(Request $request){
var_dump($request->all());exit;
}
点击提交后的结果为空???
答案 0 :(得分:0)
除了将crsf-token值放在标头元数据中外,您还需要使用类似以下内容将其传递到AJAX请求中:
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
答案 1 :(得分:0)
我在我的Ajax的数据部分中添加了crsf令牌,它对我来说就像是一种魅力。
$('#save').click(function () {
$.ajax({
type: 'POST',
url: "{{url('class/store')}}",
cache: false,
data: {
"check": sThisVal,
"_token": "{{ csrf_token() }}",
}, //sThisVal get all input checkbox checked
success: function (r) {
$('#msg').html(r);
},
error: function (jqXHR, text, errorThrown) {
$('#msg').html(jqXHR + " " + text + " " + errorThrown);
}
});
});
希望有帮助
答案 2 :(得分:0)
有时候您要做的就是使方法像下面这样写大写