2013-10-07 47 views
0

我正在一CakePHP的JSON REST API -CakePHP的REST API POST請求調用指數(),而不是添加()

我正在關注的REST教程在http://book.cakephp.org/2.0/en/development/rest.html,並通過Chrome擴展測試一切「高級REST客戶端」

的唯一途徑,我可以得到預期的功能是通過一個GET請求指數() - 返回了我的測試數據的陣列(如預期)

當我發佈到試圖創建一個新的記錄,我收到一個404,同樣我添加了一些測試數據到我的數據庫,以嘗試一個GET請求一個配方的ID(一個36char UUI D字段)和請求路由到index()函數。

我收到以下響應,當我嘗試做任何事情,但一個簡單的GET請求:

{ 
code: 404 
url: "https://stackoverflow.com/users/d8d9701e-2f6e-11e3-af16-2513f388d17e" 
name: "Action UsersController::d8d9701e-2f6e-11e3-af16-2513f388d17e() could not be found." 
} 

這裏的請求是GET用戶/ d8d9701e-2F6E-11e3-af16-2513f388d17e

在我的routes.php文件文件:

Router::resourceMap(array(
    array('action' => 'index', 'method' => 'GET', 'id' => false), 
    array('action' => 'view', 'method' => 'GET', 'id' => true), 
    array('action' => 'add', 'method' => 'POST', 'id' => false), 
    array('action' => 'edit', 'method' => 'PUT', 'id' => true), 
    array('action' => 'delete', 'method' => 'DELETE', 'id' => true), 
    array('action' => 'update', 'method' => 'POST', 'id' => true) 
)); 

Router::mapResources('users'); 
Router::parseExtensions('json'); 

我UsersController.php樣子:http://pastebin.com/bDxRLbTP

注意評論訪問控制規則似乎對我的問題沒有影響。無論如何,我已經在沒有控制規則的情況下嘗試過它,而我並不是100%正確的存在於正確的地方。但是由於CORS的一些問題,我認爲POST不起作用。但是,它不會在嘗試查找特定記錄時解釋GET問題。

根據教程,我覺得我不應該實際上需要Router :: resoureMap函數,但爲了以防萬一,我拋出它。我也試過把它路由器:: mapResources撥打以下 - 但在本教程中,它說:

「通過覆蓋默認資源地圖,將來調用mapResources()將使用新的價值。」

所以我敢肯定它需要調用調用mapResources()

THANKS之前!

回答

0

問題是,顯然我有我的函數在routes.php文件的錯誤區域。

按:CakePHP - REST POST functionality not working with default mapping

在routes.php文件我有以下爲我的文件的最後一行。

Router::mapResources('users'); 
Router::parseExtensions('json'); 

他們需要高於此線被感動:

require CAKE . 'Config' . DS . 'routes.php'; 
相關問題