2013-07-29 3 views
-1

Я работаю над приложением CakePHP 2.x и пытаюсь реализовать JSONP. Это мой первый раз, так что я не знаю, как я могу это сделать:JsonP с CakePHP

$(function(){ 
$.getJSON("https://www.example.com/myweb/api/getjsonp&jsoncallback=?", 
function(data){ 
    console.log(data); 
    } 
    ); 

     }); 

Контроллер:

public function getjsonp(){ 

$id = $this->Auth->user('idUser'); 
$messages = $this->Contact->getMessages($id); 


$totalmessages = json_encode($messages); 
echo $_GET['jsoncallback'] . '(' . $totalmessages . ')'; 

}

код не работает. Я что-то упускаю?

ответ

0

может быть, вы не открыть это в PHP попробуйте добавить этот код в верхней части PHP файла

заголовок ("Access-Control-Allow-Origin: *");

+0

что это на самом деле? Я работаю над CakePHP, так это правильно? – hellosheikh

0

Возможно, вы не указали правильный макет/представление. См. this page об использовании представлений Json и Xml.

Шаги:

  1. Добавить Router::parseExtensions('json'); в файл router.php.
  2. Нагрузка RequestHandlerComponent на ваш (App)Controller.
  3. Создайте View (по названию app/View/Api/json/getjsonp.ctp).
  4. Заливка View с:

    <?php 
    $totalmessages = json_encode($messages); 
    echo $_GET['jsoncallback'] . '(' . $totalmessages . ')'; 
    
  5. Pass $messages от контроллера, как это:

    public function getjsonp() { 
        $id = $this->Auth->user('idUser'); 
        $messages = $this->Contact->getMessages($id); 
    
        $this->set(compact('messages')); 
    } 
    
  6. Изменить URL из:

    https://www.site.com/myweb/api/getjsonp&jsoncallback=?

    к

    https://www.site.com/myweb/api/getjsonp.json&jsoncallback=?.

    Примечание .json.

+0

Я не получил доквентацию ... там нет никакого примера там .. только объяснение в простом английском – hellosheikh

+0

ok позвольте мне попробовать ваш пример – hellosheikh

+0

не работает ... когда я набрал URL-адрес в браузере .. он не может найти класс – hellosheikh

 Смежные вопросы

  • Нет связанных вопросов^_^