我正在使用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是空白时。知道为什么?
答案 0 :(得分:1)
GET请求没有正文。如果需要传递数据,可以添加查询字符串。例如:
http://api-dev.fancompetition.com/my-rest-api/api/robots/?key1=value1&key2=value2
您可以通过$app->request->get()
进行检索,然后使用json_decode