2014-01-03 2 views
-1

Я создаю веб-страницу в CakePHP и jQuery, которые я хотел бы сделать ajaxify, но также хочу, чтобы она была доступна для всех, поэтому я врываюсь в прогрессивное улучшение. В beforeRender() у меня есть этот простой фрагмент кода, который работает очень хорошо для простых запросов:Как бороться с ajax и прогрессивным улучшением?

public function beforeRender() 
{ 
    if($this->request->is('ajax')) 
    { 
     $this->layout = 'ajax'; 
    } 
} 

поэтому, когда у меня есть запрос Ajax он просто оказывает содержимое и не все меню, заголовок, и т.д., и когда нет, оказывает нормально ,

Но я теряюсь, как должен быть правильный ответ с сервера. Я имею в виду, если это обычный запрос, страница загружается нормально. Но если это запрос ajax, я не могу получить переменную, которую я бы установил, например, через javascript. Или любой статус операции (если он не прошел, был успешным и т. Д.). На данный момент я отправляю что-то лишнее через заголовки ответов, но я не знаю, действительно ли это так, поэтому, какие-либо рекомендации по тому, как я могу это решить?

+0

Вы можете установить переменные, но они будут доступны в визуализации только HTML Аякса, если вы хотите установить JavaScript переменные, то вы установили их в визуализировать представление запроса ajax. – Anubhav

ответ

-1

Вы можете использовать CakeResponse для отладки.

if ($this->RequestHandler->isAjax()) { 
//your code here 
return new CakeResponse(array('body'=> json_encode('...message here...'),'status'=>200)); 
} 

Это внутри функции AJAX не внутри beforeRender

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