Ошибка в структуре jars parsing-zend - PullRequest
1 голос
/ 27 марта 2012

Я хочу сделать действие удаления асинхронным, используя AJAX, в контроллере я делаю действие, которое обрабатывает запрос

  public function deleteAction() {

    $request = $this->getRequest();
    if ($request) {
        $visitId = $request->getParam('visit_id');
        $mapper = new Visits_Model_VisitsMapper();
        try {
            $mapper->deleteVisit($visitId);
           echo json_encode("1");
        } catch (Exception $e) {
            $this->view->message = "error inserting Data, Error details: " . $e->getMessage();
          echo  json_encode("0");
        }

        Zend_Controller_Front::getInstance()->setParam('noViewRenderer', true);
    }
}

и в скрипте jquery

 $("a.delete").live('click',function(e){
    e.preventDefault();
   var data={
                "visit_id":$(this).parent().parent().attr("id")
     };

    jQuery.ajax({
        url: "/visits/visit/delete",
        type: "POST",
        dataType: 'json',
        data: requestDate,
        success: successCallback,
        error:failureCallback
   });

Когда я нажимаю кнопку удаления, запрос отправляется, и появляется всплывающее сообщение об ошибке

 Error    <!-- application/layouts/scripts/layout.phtml -->
 the  whole html of layout page....
 error SyntaxError: JSON.parse: unexpected character

Я обнаружил, что процесс удаления не произошел !! Когда я отправляю синхронный запрос, операция удаления прошла успешно. А также, когда я выполняю вызов AJAX без использования страницы макета, удаление также успешно завершается.

В чем может быть ошибка?

1 Ответ

0 голосов
/ 27 марта 2012

Я подозреваю, что ваш макет отображается, а затем анализируется (безуспешно) кодом jQuery. Попробуйте выключить его:

try {
    $mapper->deleteVisit($visitId);
    if ($this->getRequest->isXmlHttpRequest()) {
        $this->_helper->json("1"); //this will disable layout and view renderer
                                   //and echo your data
    }
    else {
        //...
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...