请求输入Laravel Ajax在更新方法上返回null

时间:2019-07-16 06:17:04

标签: php ajax laravel

我尝试使用put方法使用ajax更新laravel中的数据,当我回显请求输入时,结果为null,这是我的ajax

let formData = new FormData();
formData.append('name', 'lorem ipsum'); // I want get this

$.ajax({
   url     : 'product/17',
   method  : 'put',
   data: formData,
   contentType: false,
   processData: false,
   headers: {
      'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
   },
   success : function(res){
      alert(res); // result is null
   }
});

路线:

Route::resource('/product', 'ProductController');

控制器:

public function update(Request $request, $id){
   echo $id; // result is 17
   echo $request->input('name'); // result is null :(
}

我一直在搜索并尝试其他代码,但是没有用,如何解决?谢谢

1 个答案:

答案 0 :(得分:1)

我认为可能是由于请求方法所致。发送放置请求的方式与正常的获取/发送请求的方式不同。您可以这样修改:

let formData = new FormData();
formData.append('name', 'lorem ipsum'); // I want get this
formData.append('_method', 'put'); // Specify method

$.ajax({
   url     : 'product/17',
   method  : 'post',
   data: formData,
   contentType: false,
   processData: false,
   headers: {
      'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
   },
   success : function(res){
      alert(res); // result is null
   }
});

现在,您可以使用相同的方法访问数据。

$request->input('name');

希望您能理解