Получить JSON ошибку при звонке с угловой с Zend Framework 1

0

Мой код в действии zend следующий:

$this->getResponse()
            ->setHeader('Content-Type', 'application/json');
$result = array("status" => true, "result" => $output);
        $json = json_encode($result);
echo $json;

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

app.controller("statController", function($scope, $http){
        $http.get("mydomain/controller/action/")
        .success(function(response) {
        console.log(response)
        }).error(function(response) {
                alert(response)
            console.log('Error : ' + response);
        });
});

Когда я вызываю URL из браузера и проверяю его на вкладке "Сеть", результат получается в json. Но когда я проверяю его по моему угловому звонку, результат имеет такую ошибку:

SyntaxError: JSON.parse: unexpected end of data

Также URL-адрес, который я называю (контроллер zend и действие), находится не в том же домене, что и мой код angular.js. Я использую Zend Framework 1.

ОБНОВЛЕНИЕ Я нашел prblem. Я пытался получить доступ из разных доменов, поэтому мне нужно было добавить

$this->getResponse()->setHeader('Access-Control-Allow-Origin', '*');

К моему действию.

  • 0
    try: 678941 $ this-> getHelper ('Layout') -> disableLayout (); $ this-> getHelper ('ViewRenderer') -> setNoRender (); $ this-> getResponse () -> setHeader ('Content-Type', 'application / json; charset = UTF-8'); $ result = array ("status" => true, "result" => $ output); $ json = json_encode ($ result, JSON_UNESCAPED_UNICODE); echo $ json; Выход; Для более подробной информации: - se2.php.net/json_encode
Теги:
zend-framework

1 ответ

0

Попробуйте выполнить приведенный ниже код,

public function yourAction()
{
    // Disable the layout and view for the action
    $this->_helper->layout()->disableLayout();
    $this->_helper->viewRenderer->setNoRender();

    // Set the header as JSON
    header("Content-Type:application/json");

    // Your code starts here
    // .........................
    $result = array("status" => true, "result" => $output);
    $json = json_encode($result);

    echo Zend_Json::encode($json);
}

Примечание. Код не проверен. Попробуйте один раз, возможно, это проблема с вашим макетом или чем-то еще.

  • 0
    Спасибо. Ответ не помог. Я нашел исправление, добавив '$ this-> getResponse () -> setHeader (' Access-Control-Allow-Origin ',' * ');' на мой контроллер, так как я пытался получить доступ из другого домена.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню