Javascript 如何在Laravel中使用Ajax上传文件我收到错误419(未知状态)

Javascript 如何在Laravel中使用Ajax上传文件我收到错误419(未知状态),javascript,php,ajax,laravel,Javascript,Php,Ajax,Laravel,如何在Laravel中使用Ajax上传文件我收到错误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)

如何在Laravel中使用Ajax上传文件我收到错误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')

尝试将
CSRF令牌添加到
标题中,如下所示:

$("#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
。因此,您可以像在控制器中那样
访问它。

尝试将
CSRF令牌
添加到
标题中,如下所示:

$("#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
。因此,您可以像在控制器中那样
访问它