主干-我们的模型如何知道服务器是否发送;错误消息";使用PHP
我有一个模型,有url属性。 当我使用“save”方法保存模型时,它正在向服务器发送请求。 如果通信成功,则触发success()方法,如果通信失败,则触发“error”函数。 但是,如果没有通信问题,但由于某些服务器验证或其他原因,服务器发送“失败消息”,该怎么办? 由于服务器端验证(或其他验证),模型未保存在服务器中。 因此,它也不应该保存在主干模型中。 当服务器发送“错误更新数据库”时,我应该如何告诉模型不要保存,当我收到“成功更新”时,我应该如何告诉模型保存 我正在从服务器发送以下响应:主干-我们的模型如何知道服务器是否发送;错误消息";使用PHP,php,codeigniter,backbone.js,sync,Php,Codeigniter,Backbone.js,Sync,我有一个模型,有url属性。 当我使用“save”方法保存模型时,它正在向服务器发送请求。 如果通信成功,则触发success()方法,如果通信失败,则触发“error”函数。 但是,如果没有通信问题,但由于某些服务器验证或其他原因,服务器发送“失败消息”,该怎么办? 由于服务器端验证(或其他验证),模型未保存在服务器中。 因此,它也不应该保存在主干模型中。 当服务器发送“错误更新数据库”时,我应该如何告诉模型不要保存,当我收到“成功更新”时,我应该如何告诉模型保存 我正在从服务器发送以下响应:
$this->response(
array(
'model'=>$model,
'status'=>$status,
'metamodel'=>array(),
'message'=>$msg (either success or fail)(my custom message)
)
);
在客户端,我像这样储蓄
model.save(attr{
success:(model,res)->
// to do when communication success
error:(model,res)->
//to do when communication fails
})
那么,如何根据消息或状态检查服务器是否成功?
而且,当服务器说“否”(不是内部服务器错误、我的自定义验证错误或其他原因)时,我如何告知模型不保存或恢复更改
另外,我如何使用Backbone.Sync方法(请提供与我的代码相关的实际示例)
它有什么作用?(请清楚说明是通信问题还是自定义错误或内部服务器错误)
我可以在“success”方法中访问“status”和“message”,但如何使用它们来恢复对模型的更改呢。
谢谢覆盖模型上的parse(response)
方法并检查错误标志。
如果您的后端设置为处理REST请求,则无需更改主干的同步方法。它应该是现成的。要处理错误,应该在出错时发送正确的HTTP代码,而不是默认的200。如果这样做,它应该调用错误处理程序。我从未使用过CodeIgniter,但我确信有办法更改响应中的http代码。如何在出现错误时发送http代码?你是指状态消息?以下是指向主干手册所述内容的链接:。阅读“保存”部分。它说返回一个“非200 HTTP响应代码”来调用erro代码。同样,我从未使用过CodeIgniter,但是查看他们的手册,您可以使用$this->output->set_status_header(代码,'text')设置HTTP响应;是的,我想使用“wait:true”,意思是我想在前端提交对模型的更改之前等待服务器确认,但是我如何实现它,你能告诉我吗?