CakePHP REST Проблема авторизации на POST и PUT (я получаю 404) - PullRequest
0 голосов
/ 25 июля 2010

Я разрабатываю REST API для приложения, и все прошло хорошо до сих пор ... Я создаю заголовок с данными для входа, GET и DELETE работают нормально, но когда я пытаюсь отправить запрос PUT или POST, я получаю 404 ... Когда авторизация отключена (т.е. я не проверяю это в торте) все работает нормально.

Вот код контроллера:

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"));
    }
}

А вот как я отправляю запросы:
http://bin.cakephp.org/view/165115685
http://bin.cakephp.org/view/1477117088

1 Ответ

1 голос
/ 26 июля 2010

Я подозреваю, что вы используете защиту CSRF (защита от спуфинга), SecurityComponent применяется ко всем запросам POST и PUT.Попробуйте отключить его, используя параметр $validatePost .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...