2010-07-25 3 views
0

Je développe une API REST pour une application, et tout s'est bien passé jusqu'à maintenant ... Je construis un en-tête avec des données de connexion, GET et EFFACER le travail bien mais quand j'essaye d'envoyer une demande PUT ou POST je reçois 404 ... Quand l'autorisation est éteinte (c.-à-d., Je ne la vérifie pas dans le gâteau) tout fonctionne bien.CakePHP REST Problème d'autorisation sur POST et PUT (je reçois 404)

Voici le code du contrôleur:

class SitesController extends AppController { 
    var $uses = array("Site"); 
    var $name = 'Sites'; 
    var $scaffold; 
    var $components = array('RequestHandler','Security'); 

    function beforeFilter() { 
     $this->Security->loginOptions = array(
      'type'=>'basic' 
     ); 
     $this->Security->loginUsers = array(
      'lukasz'=>'blabla', 
      'test'=>'test' 
     ); 
     $this->Security->requireLogin(); 
    } 

    function index() { 
     $sites = $this->Site->find('all'); 
     $this->set(compact('sites')); 
    } 

    function view($id) { 
     $site = $this->Site->findById($id); 
     $this->set(compact('site')); 
    } 

    function add() { 
     if($this->data != null) { 
     $this->Site->create(); 
     if($this->Site->save($this->data)) { 
      $message = array('Deleted'); 
     } else { 
      $message = $this->data; 
     } 
     $this->set(compact("message")); 
     } 
    } 

    function edit($id) { 
     $this->Site->id = $id; 
     if ($this->Site->save($this->data)) { 
      $message = array('Saved'); 
     } else { 
      $message = array('Error'); 
     } 
     $this->set(compact("message")); 
    } 

    function delete($id) { 
     if($this->Site->delete($id)) { 
      $message = array('Deleted'); 
     } else { 
      $message = array('Error'); 
     } 
     $this->set(compact("message")); 
    } 
} 

Et voici comment j'envoyer des demandes:
http://bin.cakephp.org/view/165115685
http://bin.cakephp.org/view/1477117088

Répondre

1

Je soupçonne que vous êtes en cours d'exécution dans la protection CSRF (sous forme de protection de l'usurpation d'identité), le SecurityComponent s'applique à toutes les demandes POST et PUT. Essayez de l'éteindre en utilisant le $validatePost option.

+0

C'était tout, merci :) – MindFork

Questions connexes