Невозможно отправить JSON ответ из Zend Framework 3 на Ajax вызов - PullRequest
0 голосов
/ 03 февраля 2020

Возникает следующая ошибка: JSON .parse: неожиданный символ в строке 2 столбца 1 данных JSON. Из контроллера Zend Framework 3 я использую JsonModel () для переноса ответа, который я хочу отправить в виде json сообщения клиенту. Обратите внимание, что он выполняет функцию успеха ajax, когда я изменяю dataType на "html". Но в этом случае либо я не могу получить доступ к элементам данных.

Клиент - Ajax вызов, который выглядит следующим образом:

$(document).ready(function(event){

    $("#preview").click( function(event){ 

        event.preventDefault();
        var controllerId = $(this).attr("controller-id");
        alert("coontrollerId - "+controllerId);

        $.ajax({

            url:        '/dpo/policyPreview/'+controllerId, 
            type:       'POST',
            dataType:   'json',
            data:       controllerId,
            async:      true,

            success: function(response) { 
                try {

                    alert("Result".response."status");

                } catch (e) {
                    return false;
                }
                return true;

            },
            error: function(xhr, status, thrown) {
                alert("Error");
                console.log(status);
            }

        });


    });

Сторона сервера - Zend Framework 3:

    public function previewAction()
    {
        $request = $this->getRequest(); 
        //get parameters $query->get('showJson') == 1
        $controllerId = (int)$this->params()->fromRoute('controllerId',-1);
        $query = $request->getQuery();  
        if ($request->isXmlHttpRequest() || $showJson ) { 

        $view = new JsonModel([
            'status' => 'SUCCESS',
            'message'=>'Here is your data',
            'data' => [
                'full_name' => 'John Doe',
                'address' => '51 Middle st.'
            ]
        ]);

        //do not render the view
        //$view->setTerminal(true); 
        return $view;

       } else { 
          $view = new ViewModel(); 
       }  
       return $view;

    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...