我试图使用ajax更新数据,但ajax在Controller函数中不起作用
控制台中的错误
补丁http://127.0.0.1:8000/userData 500 (内部服务器错误)发送@jQuery3.5.1.min.js:2 ajax @ jquery-3.5.1.min.js:2 (匿名)@ home:438分派@jQuery3.5.1.min.js:2 v.handle @ jquery-3.5.1.min.js:2
ajax脚本
$(document).ready(function(){
$(document).on("click", "#update_data", function() {
var url = "{{URL('/userData')}}";
$.ajax({
url: url,
type: "PATCH",
cache: false,
data:{
_token:'{{ csrf_token() }}',
lat: $('#lat').val(),
lon: $('#lon').val()
},
success: function(dataResult){
dataResult = JSON.parse(dataResult);
if(dataResult.statusCode)
{
window.location = "/userData";
}
else{
alert("Internal Server Error");
}
}
});
}); });
控制器中的更新功能
public function update()
{
return redirect()->route('user.home');
if(request('lat')){
userData::Where('user_id',auth()->user()->id)->update( [ 'lat' => request('lat'), 'lon' => request('lon') ]);
}
return json_encode(array('statusCode'=>200));
}路由
路由:修补程序(‘/userData’,'UserController@update');
发布于 2022-05-26 01:46:06
首先,您将返回重定向,它将在第一时间运行。您需要删除它,所以代码应该是:
public function update(Request $request)
{
if($request->has('lat')){
$update = userData::where('user_id',auth()->user()->id)
->update([
'lat' => $request->lat,
'lon' => $request->lon
]);
if ($update) {
return response()->json([
'statusCode' => 200
]);
}
}
return response()->json([
'statusCode' => 500 //for internal server error
])
}https://stackoverflow.com/questions/72385099
复制相似问题