Я отправил вызов Ajax, который показал сообщение об ошибке:
500 Внутренняя ошибка сервера
Я просмотрел несколько сообщений по Stackoverflow и понял, что долженпрошел токен csrfТаким образом, я вставил следующий код в раздел head (как раз перед закрытием тега head).
<meta name="csrf_token" content="{{ csrf_token() }}">
Кроме того, вот коды Ajax, которые я вызвал;
$.ajax({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf_token"]').attr('content')
},
url: "adminUser/exportselected/1",
type:'POST',
data: {selected:selected, selectedField:selectedField},
success: function(data) {
window.location = data.path;
if($.isEmptyObject(data.error)){
//alert(data);
}else{
//alert(data.error);
}
}
});
Как видно из вышесказанного, я также передал токен с заголовками.Что еще мне нужно сделать?
Мой маршрут (web.php) выглядит так:
Route::post('adminUser/exportselected/{page?}', 'Administrator\AdminUserController@exportSelected');
Ниже приведен код моего контроллера;
публичная функция exportSelected ($)страница, запрос $ запрос) {
if (\Request::isMethod('post')) {
$adminUserDataExcelSelected = UserAdmin::getAdminUserListExcelSelected($request->selectedField, $request->selected)->get();
$excelName = "Admin-Users".Carbon::now();
$path = public_path('export/'.$excelName);
ob_end_clean();
ob_start();
Excel::create($excelName, function($excel) use($adminUserDataExcelSelected) {
$excel->sheet('Sheet 1', function($sheet) use($adminUserDataExcelSelected) {
$sheet->fromArray($adminUserDataExcelSelected);
});
})->store('xlsx', public_path('exports'));
ob_flush();
//dd(url('/'));
$creatingPath = url('/')."/exports/".$excelName.".xlsx";
//return response()->download(public_path('a.xlsx'));
return response()->json(['path' => $creatingPath]);
//return response()->download($path);
}
}