Есть АПИ на Laravel, я использую библиотеку Laravel-Excel что бы сгенерировать xls файл, как его правильно отдать клиенту и как сделать на реакте скачивание файла?
На php делаю так:
$this->makeExcel($logs, ContentLog::getActions(), 'logs.log_by_user_table', 'Logs:_' . $user->name);
Метод makeExcel:
private function makeExcel(Collection $data, array $actions, string $view, string $name)
{
$excel = App::make('excel');
$excel->create($name, function ($excel) use ($data, $actions, $view) {
$excel->sheet('log', function ($sheet) use ($data, $actions, $view) {
$sheet->loadView($view, ['log' => $data, 'actions' => $actions]);
});
$excel->store('xls')
->export('xls');
});
}
Я использую axios для отправки запроса, например так:
static getFile(url, params) {
return axios({
method: 'GET',
url: backendDomen + url,
responseType: 'blob',
params: params,
headers: {
Authorization: 'Bearer ' + localStorage.getItem('token'),
Accept: 'application/vnd.ms-excel',
}
}).then(function (value) {
console.log(value)
FileDownload(value.data, 'report.xls')
return value
}).catch(function (reason) {
console.log(reason)
if (reason.response && reason.response.status === 401) {
window.location.replace('/auth/login')
} else {
console.error(reason)
}
})
}
В консоль выводится ошибка
Error: Network Error at createError (createError.js:16) at XMLHttpRequest.handleError (xhr.js:87)
Хотя в браузере я вижу что приходит
Добавляем заголовок в конце
->export('xls', ['Access-Control-Allow-Origin' => '*']);
а на фронте меняем тип
responseType: 'arraybuffer',
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Мне нужен скрипт на PHP или JavaScript, который будет на стороннем сайте вводить в текстовое поле текст, а потом нажимать несколько кнопокID кнопок...
Помогите получить ответ от сервераЕсть функция выполнения запросов в формате JSONP c помощью тега script
Всем доброго времени сутокПодскажите пожалуйста столкнулся с такой задачей