2013-01-20 113 views
1

当我通过node.js充满了一些数据来Kohana做POST查询时,我总是得到空数组,但是当我通过浏览器本地JavaScript AJAX调用做它 - 它获得正确的数据 - 我发送的。Node.js的POST请求的Kohana

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); 

我在这里做错了什么?

回答

0

在Kohana中,您不使用$this->request->post作为全局$_POST var,它用于内部(子)请求。

在你的情况,你会简单地做:

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

确保您始终分配到身体的反应,因为这是在Kohana中

做,如果你想对的正确方法更多信息:

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

然后你$this->request->post将返回数据