我正在嘗試使用 Slim 路由執行 PUT 請求。
使用 POST 請求執行此操作沒有問題,但是當我嘗試使用 PUT 執行此操作時,變數 $body(在下面的示例中)結果為“NULL”。同樣通過變數 $args['id'] 我可以從 url 中獲取引數“id”。
$app->put('/networks/{id}', function ($request,$response,$args) {
$body = $request->getParsedBody();
var_dump($body,1);
die();
[...]
});
請求標頭
PUT /mysite/networks/1 HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:98.0) Gecko/20100101 Firefox/98.0
Accept: application/json, text/javascript, */*; q=0.01
Accept-Language: it-IT,it;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE2NDc2MTkzMDgsImV4cCI6MTY0NzYyMTEwOCwianRpIjoiNTg5MzNiZmY3ZDQwZmY2NmU4YmJhMjA0YzM1MDVkMTMiLCJpZCI6IjIwIiwiZW1haWwiOiJhZG1pbkBnbWFpbC5jb20iLCJtYXRyaWNvbGEiOiJNTVNEQSJ9.WBLAwfxlcT2vXTQugxYbYgSSb_XNaBREWXxTXSGSsdQ
X-Requested-With: XMLHttpRequest
Content-Length: 81
Origin: http://localhost
Connection: keep-alive
Referer: http://localhost/anas-ta/public/index.html
Cookie: _pk_id.1.1fff=0fb970783be6ee60.1646993471.; jwt_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE2NDc2MTkzMDgsImV4cCI6MTY0NzYyMTEwOCwianRpIjoiNTg5MzNiZmY3ZDQwZmY2NmU4YmJhMjA0YzM1MDVkMTMiLCJpZCI6IjIwIiwiZW1haWwiOiJhZG1pbkBnbWFpbC5jb20iLCJtYXRyaWNvbGEiOiJNTVNEQSJ9.WBLAwfxlcT2vXTQugxYbYgSSb_XNaBREWXxTXSGSsdQ
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-origin
這是一個使用標頭“x-www-form-urlencoded”發送的示例請求正文:
name=test&streets%5B1%5D=A01%2CA02%2CA03&streets%5B2%5D=A01%2CA02%2CA03
...為了可讀性,我對其進行了漂亮的處理:
{
"name": "test",
"streets[1]": "A01,A02,A03",
"streets[2]": "A01,A02,A03"
}
感謝支持 C:
uj5u.com熱心網友回復:
我解決了
$app->addBodyParsingMiddleware();
我不知道它為什么起作用以及它是如何真正改變的。
https://stackoverflow.com/a/58827378/7336262
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/449835.html
