2015-09-24 15:28:24 4702次浏览 3条回答 1 悬赏 60 金钱
private function receive_data_handle(){
    $_data = empty($_POST) ? json_decode(file_get_contents('php://input'), TRUE) : $_POST;
    var_dump($_data);
}

public function actionApi_xxx(){
    $this->receive_data_handle();
}

我使用 POSTMAN 去傳值,但如果走的 "POST" 方式是 : application/x-www-form-urlencoded
var_dump 出來 甚麼都沒有, 連錯誤訊息都沒有。 好像被吃掉了一樣!!
有人有碰過這種問題嗎!!? 還是設定有哪邊有錯誤

$_POST 換成 Yii::$app->request->post() 也是一樣

================================================================================================

解決辦法

一般 $_POST 只接收的到 Content-typeapplication/x-www-form-urlencodedmultipart/form-data 的資料
若是使用 Content-type 其他類型的資料傳送 可以使用 file_get_contents('php://input') 來接收資料

範例

public function actionTest() {
    $_data = empty($_POST) ? json_decode(file_get_contents('php://input'), TRUE) : $_POST;
    var_dump($_data); 
    exit; 
}
  • 回答于 2015-09-24 17:26 举报

    你确定有进入到这个方法么?前缀action呢?

    2 条回复
    回复于 2015-09-24 20:06 回复

    哈哈 後面的是我手打補上去的 原本程式有加 (已經修改上去了) 但是問題還是存在..

    回复于 2015-09-25 09:53 回复

    感謝感謝~~ 找著原因了 Orz 載POSTMAN 的 Header 有 Default ....

  • 回答于 2015-09-25 07:22 举报

    建议用curl,POSTMAN不完全兼容RESTFul接口,之前做项目亲测证实过。具体好像是UPDATE还是DELETE不大记得了。

    2 条回复
    回复于 2015-09-25 09:48 回复

    好的我試看看!!

    回复于 2015-09-25 09:51 回复

    找到原因了.... 我的POSTMAN POST "Header " 有 default 所以導致 "POST" 無法執行 ORZ 我會再查看看為什麼~

  • 回答于 2015-09-25 09:11 举报

    用smsniff抓包看看你POST出去的数据是不是正常先~

    2 条回复
    回复于 2015-09-25 09:48 回复

    好的我試看看!!

    回复于 2015-09-25 09:51 回复

    找到原因了.... 我的POSTMAN POST "Header " 有 default 所以導致 "POST" 無法執行 ORZ 我會再查看看為什麼~

您需要登录后才可以回答。登录 | 立即注册
bryson
副总裁

bryson Taipei

注册时间:2015-07-22
最后登录:2017-04-03
在线时长:84小时54分
  • 粉丝19
  • 金钱4885
  • 威望230
  • 积分8025

热门问题