2016-08-13 35 views
1

CakePHP的文件說:CakePHP的3默認JSON解碼請求數據不起作用

通常REST應用在替代數據格式不僅輸出的內容,同時也接受在不同格式的數據。在CakePHP中,RequestHandlerComponent有助於實現這一點。默認情況下,它將爲POST/PUT請求解碼任何傳入的JSON/XML輸入數據,並在$ this-> request-> data中提供該數據的陣列版本。 source

但我$this->request->data是空數組。

AppController.php我加載$this->loadComponent('RequestHandler');

這是我的RequestHandler的調試信息

enter image description here

我的請求數據:

Accept: application/json Content-Type: application/json

{"store_id": 671} 

我的請求數據總是空的,爲什麼?

+0

如何看起來您的請求的網址? – Salines

+0

只需通過'GET'發佈數據並檢查它們是否爲空。 例如:'http:// localhost/URL?key = test' –

+0

請求URL:'http:// localhost/MenuItems/add' –

回答

0

如果默認情況下JSON格式的PHP不讀取POST數據。我不熟悉CakePHP,所以我不能幫助那裏,但我通常處理它的方式是:

$JSON = json_decode(file_get_contents('php://input'), true); 
echo $JSON['store_id']; 
0

調試信息來自isAuthorized。在這種情況下,JSON數據只能通過 $this->request->input('json_decode');