Delgus
@Delgus

Почему 408 ошибка при отправке на сервер?

$(".fileinput-upload-button").click(function(){
     var reader = new FileReader();
     reader.readAsDataURL(uploadImg);
     reader.onloadend =  () => {
         let fd = new FormData();
         fd.set("data", reader.result)
         fd.set("name", uploadImg.name);
         $.ajax({
            method:"post",
            data: fd,
            url:"/shop/product/ajax-save?id=" + $product->id,
            contentType: false,
            processData: false,
            success: function(data) {
                console.log(data);
            }
     });
     }
                    
     return false;
 });


Получаю 408 ошибку? Почему?

Код на сервере
public function actionAjaxSave($id)
 {
        var_dump($_FILES);
        var_dump($_POST);die;
}


PS: Если я в js коде поменяю reader.result на "lalalalalal", то все работает. но если видимо длинная строка то какой то баг. браузер Firefox
  • Вопрос задан
  • 312 просмотров
Решения вопроса 1
myks92
@myks92 Куратор тега PHP
Нашёл решение — пометь вопрос ответом!
408 Request Timeout — время ожидания сервером передачи от клиента истекло. Клиент может повторить аналогичный предыдущему запрос в любое время. Например, такая ситуация может возникнуть при загрузке на сервер объёмного файла методом POST или PUT. В какой-то момент передачи источник данных перестал отвечать, например, из-за повреждения компакт-диска или потери связи с другим компьютером в локальной сети. Пока клиент ничего не передаёт, ожидая от него ответа, соединение с сервером держится. Через некоторое время сервер может закрыть соединение со своей стороны, чтобы дать возможность другим клиентам сделать запрос. Этот ответ не возвращается, когда клиент принудительно остановил передачу по команде пользователя или соединение прервалось по каким-то иным причинам, так как ответ уже послать невозможно.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы