Phalcon getJsonRawBody不使用GET请求

时间:2014-05-23 01:12:36

标签: jquery ajax phalcon

我正在使用Phalcon开发API。我正处于试用/错误阶段,学习Phalcon以及使用此框架构建REST API的正确方法。

我的问题是,当通过jQuery对我的API进行ajax调用时,类型为:“GET”Phalcon无法使用getJsonRawBody解析请求。当我通过类型为“POST”的jQuery运行相同的ajax调用时,它可以工作。


这是我的ajax请求。

$('.start').click(function() {
    var arr = {timestamp:'<?=time();?>'};
    $.ajax({
        type: "GET",
        beforeSend: function (request)
        {
            request.setRequestHeader("X-Api-Key", "<?=$api_key;?>");
            request.setRequestHeader("X-Hash", "<?=$hash;?>");
        },
        data: JSON.stringify(arr),
        contentType: 'application/json; charset=utf-8',
        url: "http://api-dev.fancompetition.com/my-rest-api/api/robots/",
    })
    .done(function(data) {
        $('#data').html(data);
    });
});

在服务器端,我有:

$ vars = $ app-&gt; request-&gt; getJsonRawBody();

现在,如果您将类型更改为POST,我就可以获取内容。当类型是GET而不是我的变量vars是空白时。知道为什么?

1 个答案:

答案 0 :(得分:1)

GET请求没有正文。如果需要传递数据,可以添加查询字符串。例如:

http://api-dev.fancompetition.com/my-rest-api/api/robots/?key1=value1&key2=value2

您可以通过$app->request->get()进行检索,然后使用json_decode

手动解码json