亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

$this->request->getData() 升級到 CakePHP 4.0 后為空

$this->request->getData() 升級到 CakePHP 4.0 后為空

PHP
HUH函數 2022-07-22 10:09:16
升級到 CakepPHP 4.0 后,我通過 XMLHttpRequest 發出的 POST 請求停止將數據傳遞給$this->request->getData()雖然可以訪問數據,$this->request->input('json_decode');但 GET 請求也可以正常工作。但我想知道與 3.* 相比發生了什么變化,以及為什么它不像以前那樣工作。這是我的 xhr:this.$http.post(            url,             data,             {headers: {'X-CSRF-TOKEN': '<?= $this->request->getAttribute('csrfToken') ?>'}},             })            .then(response => {                //            }        );當我打電話時它給了我一個空數組$this->request->getData()我試圖為該特定操作關閉 FormProtection 組件,但沒有任何改變。
查看完整描述

1 回答

?
斯蒂芬大帝

TA貢獻1827條經驗 獲得超8個贊

如果想知道發生了什么變化,請先查看遷移指南,在這種情況下,特別是組件的重大更改部分。


請求正文解析功能已從請求處理程序組件中刪除(之前存在的棄用警告也已刪除,因為它導致了太多誤報)。這現在應該由body parser middleware處理,您需要相應地添加您的應用程序,或者在您的Application類中全局添加:


public function middleware(MiddlewareQueue $middlwareQueue): MiddlewareQueue

{

    // ...


    $middlwareQueue->add(new \Cake\Http\Middleware\BodyParserMiddleware());  


    return $middlwareQueue;

}

或在路由范圍內:


\Cake\Routing\Router::scope('/', function (\Cake\Routing\RouteBuilder $routes) {

    $routes->registerMiddleware('bodyParser', new \Cake\Http\Middleware\BodyParserMiddleware());

    $routes->applyMiddleware('bodyParser');


    // ...

});


查看完整回答
反對 回復 2022-07-22
  • 1 回答
  • 0 關注
  • 108 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號