一段时间后我想通了。
假设以下设置
- Cakephp 2.x
- 此处的操作对匿名用户是公开的
步骤 1.由 josegonzalez安装Webservice 插件。
步骤 1.1。为 json 设置 Router::parseExtensions
步骤 1.2。将“Webservice.Webservice”添加到 PostController 的组件中
步骤 1.3。加载插件
步骤 2. 您需要为 PostController 更改以下操作
public function add() {
if ($this->request->is('post')) {
// create new Post -- this will grab the file from the request data
$newPost = $this->Post->createNew($this->request->data);
if ($newPost) {
$this->Session->setFlash(__('Your Post has been saved'));
// for normal webpage submission
if (empty($this->request->params['ext'])) {
$this->redirect('/');
} else {
// for json response to Flex client
$result = $newPost;
$error = null;
$id = null;
}
} else {
$this->Session->setFlash(__('Your Post could not be saved. Please, try again.'));
// for json response for failure to create
if (!empty($this->request->params['ext'])) {
$result = null;
$error = 'Your Post could not be saved.';
$id = null;
}
}
// this is for json response via Webservice.Webservice
$this->set(compact('result', 'error', 'id'));
}
}
第 3 步。设置您的 Flex 代码,如这里答案中所述。这就是您在 Flex Actionscript 中检索 JSON 响应的方式。
第 4 步。您应该期望得到一个 json 响应,其中包含 3 个变量 result、error、id 和 cake validationErrors。您可以选择按照插件中的说明将validationErrors 列入黑名单。