【发布时间】:2013-05-25 02:02:26
【问题描述】:
我正在尝试使用 CakePHP 2.3.5 编写一个 RESTful 服务。到目前为止,我已经成功地为我正在使用的资源创建了 GET 函数。我可以向example.com/areas.json 或example.com/areas/1.json 发送一个GET 请求,它会返回我数据库中的数据。
但是,我开始尝试让编辑功能正常工作。我写了一个简单的编辑方法,简单地保存了来自$this->request->data 的传入数据。我正在使用 Postman 测试功能并通过 PUT 或 POST 将原始 JSON 发送到 example.com/areas/1.json 返回一条消息,告诉我无法保存数据。我让该方法在失败时向我发送更多信息,它告诉我$this->request->data 或$this->data 中没有传入数据。
我一直在 Internet 上搜索此问题或类似问题的解决方案,但到目前为止我所尝试的一切都失败了。我尝试禁用 CSRF 检查,完全禁用 SecurityComponent,以及其他多个涉及安全性的修复。更改其中任何一项都会导致请求黑洞化。
有没有人对我可以尝试让 CakePHP 接受 JSON 数据到请求中的其他方法有什么想法?如果有帮助,我将在下面包含我的编辑功能。
public function edit($id)
{
$this->Area->id = $id;
$message['request-data'] = $this->request->data;
if ($this->Area->save($this->request->data)) {
$message['response'] = $this->Area->findById($id);
} else {
$message['response'] = "Error";
}
$this->set(array(
'message' => $message,
'_serialize' => array('message')
));
}
【问题讨论】:
标签: php json rest cakephp cakephp-2.3