Do not disable security component, ajax request works fine with in
AppController:
public function beforeFilter() {
if ($this->request->is('ajax')) $this->Security->unlockedActions =
array($this->request->action);
}
Ajax works fine is you send data in json format and not html code.
best regards --cesar
El jueves, 14 de junio de 2012 10:20:49 UTC-3, jmail escribió:
>
> Hi all!
>
> I've got a stupid problem :/
>
> I am building small chat. I need that for my customer - it's not importand
>
> I've got:
>
> AppController:
>
> <?php
> App::uses('Controller', 'Controller');
> class AppController extends Controller {
> var $uses = array('Config', 'Chat', 'User');
> var $helpers = array('Form', 'Html', 'Session');
> var $components = array('Session', 'RequestHandler');
> var $nonLoginActions = array(
> 'chat' => array('login')
> );
> public function beforeFilter() {
> parent::beforeFilter();
> $this->getConfig();
> $this->checkSession();
> }
>
> function getConfig(){
> $config = $this->Config->find('all');
> foreach($config as $element){
> Configure::write('config.'.$element['Config']['name'],
> $element['Config']['value']);
> }
> }
>
> function checkSession(){
> if(isset($this->nonLoginActions[$this->request->params["controller"]])){
> if(!in_array($this->request->params["action"],
> $this->nonLoginActions[$this->request->params["controller"]])){
> if(CakeSession::read("user") === null || CakeSession::read("user") ===
> false){
> $this->redirect(array('controller' => 'chat', 'action' => 'login'));
> }
> }
> }
> }
>
> }
>
>
> Controller - ChatController
>
> <?php
> /*
> * To change this template, choose Tools | Templates
> * and open the template in the editor.
> */
> /**
> * Description of ChatController
> *
> * @author jmail
> */
> class ChatController extends AppController{
> var $components = array('Session', 'RequestHandler', 'Security');
>
> function login(){
>
> }
>
> }
>
> View - login.ctp
>
> Logowanie
> <?php echo $this->Form->create('User', array('inputDefaults' =>
> array('label' => false,'div' => false)));?>
> <?php echo $this->Form->input('login', array('type' => 'text', 'label' =>
> 'Login'));?>
> <?php echo $this->Form->input('pass', array('type' => 'password', 'label'
> => 'Hasło'));?>
> <?php echo $this->Form->end(array('value' => 'Zaloguj się', 'label' =>
> 'Zaloguj się', 'div' => false));?>
>
> Layout - default.ctp
>
> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
> http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
> <html xmlns="http://www.w3.org/1999/xhtml">
> <head>
> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
> <?php
> echo $this->Html->css('cake.generic');
> ?>
> </head>
> <body>
> <div id="container">
> <div id="header">
> <h1>MiniChat</h1>
> </div>
> <div id="content">
> <?php echo $this->fetch('content'); ?>
> </div>
> </div>
> </body>
> </html>
>
> And my problem is:
>
> When i go to the http://site/chat/login and press submit button I get
>
> The request has been black-holed
>
> *Error: * The requested address *'/chat/login'* was not found on this
> server.
>
>
>
> Everything is empty. What the hell I am doing wrong?
>
> cakephp-cakephp-2.1.3-28-g645e981
>
--
Like Us on FaceBook https://www.facebook.com/CakePHP
Find us on Twitter http://twitter.com/CakePHP
---
You received this message because you are subscribed to the Google Groups
"CakePHP" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/cake-php.
For more options, visit https://groups.google.com/groups/opt_out.