我正在使用laravel 6.0,正在构建Crud应用程序。我在查看文件中有以下jquery代码
function updaterecord(id) {
$('#modalupdate').on('submit', function (e) {
e.preventDefault();
$.ajax({
url: 'update/'+id,
method: 'post',
success: function (res) {
console.log(res);
}
})
});
}
这是控制器中的代码
public function update(Request $request, $id='') {
$country = $request->input('countryname');
$sortname = $request->input('sortname');
$phonecode = $request->input('phonecode');
//return $country.$sortname.$phonecode;
return $request;
// DB::table('countries')->where('id',$id)->update(
// [
// 'name' => $country,
// 'sortname' => $sortname,
// 'phonecode' => $phonecode,
// ]);
}
问题是$ request返回空。 如果我不使用ajax,那么我将获取所有输入值。但是我不知道为什么它不适用于ajax请求。另外我已经在视图文件中添加了这一行
headers: {
'X-CSRF-TOKEN': '{!! csrf_token() !!}'
}
});
请帮助我解决这个问题
答案 0 :(得分:0)
您没有传递表单数据。试试这个:
function updaterecord(id) {
$('#modalupdate').on('submit', function (e) {
e.preventDefault();
$.ajax({
url: 'update/' + id,
method: 'post',
data: $(this).serialize();
success: function (res) {
console.log(res);
}
})
});
}
答案 1 :(得分:0)
laravel默认不发送原始数据,您必须将数据转换为json,最佳做法是:
return response()->json([
'data' => $request
]);
答案 2 :(得分:0)
仅以示例代码为例,看看是否有任何提示。
ExchangeService service = new ExchangeService();
service.TraceEnabled = true;
service.Credentials = new WebCredentials(
"user",
"password",
"domain.com");
service.AutodiscoverUrl("user@domain.com", RedirectionUrlValidationCallback);
var appointmentsList = service.FindAppointments(WellKnownFolderName.Calendar, calendarView);
查看是否收到任何回复。
答案 3 :(得分:0)
尝试这个data: new FormData(this),
function updaterecord(id) {
$('#modalupdate').on('submit', function (e) {
e.preventDefault();
$.ajax({
url: 'update/' + id,
method: 'post',
data: new FormData(this),
success: function (res) {
console.log(res);
}
})
});
}