首页 > 解决方案 > 请求输入 laravel ajax 在更新方法上返回 null

问题描述

我尝试使用 ajaxput方法更新 laravel 中的数据,当我回显请求输入时,结果为空,这是我的 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 :(
}

我一直在搜索并尝试其他代码但无法正常工作,如何解决?谢谢

标签: phpajaxlaravel

解决方案


我想可能是因为请求的方法。发送 put 请求的方式与普通的 get/post 请求不同。你可以这样修改:

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');

我希望你明白。


推荐阅读