所以我有一个表单,我有一个KnockoutJs应用程序,带有CakePHP后端。当我点击Cake的默认“保存”按钮时,我想吐出并发布JSON以及标准表单数据。
到目前为止,这是我在JS中的内容:
$('input.saveProgram').click(function() {
var theJson = ko.mapping.toJSON(pvm, mapping);
$.ajax({
url: 'http://localhost/cake/programs/edit',
dataType: 'json',
type: 'POST',
data: theJson
});
});
在Cake中,我正在尝试在我的控制器中使用Request处理程序,但无济于事:
if($this->RequestHandler->setContent('json', 'application/json')) {
// standard saving code
}
在我的Cake应用程序中,我尝试过($ this-> request-> data)看看发生了什么,JSON似乎根本没有发布。
答案 0 :(得分:0)
在我解释你的问题时,这是一个解决方案。在您的控制器中:
if($this->RequestHandler->isAjax()){
// "spit" out json
echo $this->data;
//decode data into an array
$decodedData = json_decode($this->data);
//standard saving code would
$this->Model->save($decodedData);
}