Как загрузить файл, используя Ajax В Laravel Я получаю ошибку 419 (неизвестный статус) - PullRequest
1 голос
/ 18 февраля 2020

Как загрузить файл, используя Ajax В Laravel Я получаю ошибку 419 (неизвестный статус). 1. Javascript Код. 2. Код контроллера. 3. Код роутера.

Javascript Код

$("#front_image").change(function() {
  let photo = document.getElementById("front_image").files[0];
  let formData = new FormData();
  formData.append("photo", photo);
  formData.append("names",'ABC');

  $.ajax({
      type: "POST",
      url:'/up',
      data:{"_token": $('meta[name="csrf-token"]').attr('content'),"formdata":formData},
      cache:false,
      contentType: false,
      processData: false,
      success:function(data){
          console.log("success");
         console.log(data);
      },
      error: function(data){
          console.log("error");
          console.log(data);
      }
  });
});

Код контроллера

public function Image(Request $request) {
  return $request->get('names');
}

Код маршрутизатора

Route::POST('/up', 'Controller@Image')

1 Ответ

3 голосов
/ 18 февраля 2020

Попробуйте добавить CSRF-Token к вашему header следующим образом:

$("#front_image").change(function() {
  let photo = document.getElementById("front_image").files[0];
  let formData = new FormData();
  formData.append("photo", photo);
  formData.append("names",'ABC');

  $.ajax({
    headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') },
    type: "POST",
    url: '/up',
    data: formData,
    cache: false,
    contentType: false,
    processData: false,
    success: function(data){
      console.log("success");
      console.log(data);
    },
    error: function(data){
      console.log("error");
      console.log(data);
    }
  });
});

Кроме того, я бы предпочел добавить formData, как в примере выше. Таким образом, вы можете access сделать это так же, как в своем контроллере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...