我尝试使用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 :(
}
我一直在搜索并尝试其他代码,但是没有用,如何解决?谢谢
答案 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');
希望您能理解