问题描述
我通过Chrome扩展程序通过AJAX向我的OctoberCMS控制器发送数据。
如何在Chrome扩展程序中识别出数据库操作成功?
因此,目标是在成功更新数据库后,可以在AJAX调用中使用done()
。
我是否必须从控制器中退回东西?
扩展名中的Ajax
$.ajax({
headers: {
'X-CSRF-TOKEN': $('Meta[name="csrf-token"]').attr('content')
},url: "/saveData",type: "POST",dataType: "JSON",data: { "data": data}
}).done(function((){//does nothing});
OctoberCMS Controller
function saveData(Request $request)
{
$data = post('data');
//do some actions with the data;
DB::table('users')->where(['id' => Auth::getUser()->id])->update(['data' => $data]);
}
解决方法
您可以检查响应
从服务器端
function saveData(Request $request)
{
$data = post('data');
//do some actions with the data;
DB::table('users')->where(['id' => Auth::getUser()->id])->update(['data' => $data]);
// if all good return success
return ['success' => true];
// if something is not correct
// return ['success' => false];
}
客户端
$.ajax({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},url: "/saveData",type: "POST",dataType: "JSON",data: { "data": data}
}).done(function((data){
if(data.success == true) {
// yes all good data is updated
}
else {
// data is not updated some error handling
}
}).fail(function() {
// data is not updated some error handling
// failed in case server is not able to answer or error
});
如有疑问,请发表评论。