1
我一直在通过返回json编码数组来处理成功/错误消息作为响应,但是突然想到,这可能不是处理通知的正确方式。使用Codeigniter处理ajax响应
例如,我的控制器看起来就像这样:
public function controller_name() {
//validate form input
$this->form_validation->set_rules('id', 'id', 'required|is_natural_no_zero');
// if validation was successful with no errors
if ($this->form_validation->run() && $this->model_name->method()) {
$this->data['status'] = 'success';
$this->data['message'] = 'This is the success message';
echo json_encode($this->data);
} else {
$this->data['status'] = 'error';
$this->data['message'] = validation_errors();
echo json_encode($this->data);
}
}
然后jQuery的:
$.ajax({
url: url,
type: 'POST',
data: data,
success: function (r) {
json = $.parseJSON(r);
if (json.status == 'success') {
if (json.message == 'added') {
$this.addClass('success');
} else {
$this.removeClass('success');
}
} else {
console.log('There was an error')
}
什么是最好的实践方式做到这一点?我可以抛出异常来使用ajax错误吗?
清楚,当然似乎更清洁,我不知道为什么它从来没有想过我面前。 – Motive
是的,我有很多代码检查成功回调中的错误 – Esailija