Действие вашего контроллера возвращает HTML, а не JSON.
Вам следует рассмотреть возможность использования AjaxContext action helper
public function init()
{
$this->_helper->ajaxContext->addActionContext('delete', 'json')
->initContext();
}
public function deleteAction()
{
$id = (int)$this->_request->getPost('id');
$costs = new Application_Model_DbTable_Costs();
try {
$costs->deleteCosts($id));
$this->view->success = "deleted";
} catch (Exception $ex) {
$this->view->error = $ex->getMessage();
}
}
Единственное, что вам нужно сделать, это указать в запросе AJAX параметр format
, равный json
, например
$.post('index/delete', { "id": id, "format": "json" }, function(data) {
if (data.error) alert("Error: " + data.error);
if (data.success) alert("Success: " + data.success);
}, "json");
Возможно, вы захотите обработать ответ иначе, но это должно дать вам представление.