【问题标题】:Node.js POST request to KohanaNode.js 对 Kohana 的 POST 请求
【发布时间】:2013-01-20 23:15:56
【问题描述】:

当我通过node.js 进行 POST 查询时,向Kohana 填充了一些数据,我总是在$this->request->post() 空数组中获取,但是当我通过浏览器本机JavaScript ajax 调用进行查询时 - 它获得正确的数据 - 我已经发送了。

Node.js 代码(我正在使用request 库)- 不工作:

request.post(
    'http://someurl',
    { id : 'ididididid' },
    function (error, response, body) {
        if (!error && response.statusCode == 200) {
            console.log('returned BODY:', body);
        }
    }
);

Node.js 正在获取响应 (statusCode == 200) 但它是空数组

jQuery 代码 - 运行良好:

$.ajax({
    type: 'POST',
    url : 'http://someurl',
    dataType : 'JSON',
    data : {
        id : 'idididid'
    },
    done : function(data) {
        console.log(data.responseText);    
    }
});

Kohana 代码(控制器内部):

$data = $this->request->post();
echo json_encode($data);

我在这里做错了什么?

【问题讨论】:

    标签: node.js kohana


    【解决方案1】:

    在 Kohana 中,您不要将 $this->request->post 用于全局 $_POST var,它是用于内部(子)请求的。

    在你的情况下,你会做的很简单:

    $this->response->body(json_encode($_POST));
    

    确保您始终将响应分配给正文,因为这是在 Kohana 中执行此操作的正确方法

    如果你愿意:

    Request::factory('/someurl')->post(array('id' => 'idididid'))->execute();
    

    那么你的$this->request->post 会返回数据

    【讨论】:

      猜你喜欢
      • 2020-05-30
      • 1970-01-01
      • 2016-11-02
      • 2011-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-16
      • 2018-05-04
      相关资源
      最近更新 更多