表单由CakePHP FormHelper自动创建,请求创建如下:
$.ajax({
type: "POST",
url: _url,
data: JSON.stringify( $("form").serializeArray() ),
contentType: "application/json; charset=utf-8",
dataType: "json"
});
在控制器中,我添加此行以获取正确的JSON数据:
$this->RequestHandler->addInputType('json', array('json_decode', true));
但它不合适,因为我不能把它放入模型保存方法
(
[0] => Array
(
[name] => _method
[value] => POST
)
[1] => Array
(
[name] => data[ModelName][fieldname]
[value] => value of this field
)
)
如何从JSON请求中获取正确的数据?
答案 0 :(得分:0)
您的json请求发送到控制器操作如下:
$.ajax({
type: "POST",
url: _url,
data: JSON.stringify( $("form").serializeArray() ),
contentType: "application/json; charset=utf-8",
dataType: "json"
});
在控制器操作中获取响应,如下所示:
if($this->RequestHandler->isAjax()){
// "spit" out json re
echo $this->request->data;
//decode data into an array
$decodedData = json_decode($this->request->data);
// You can check your data before saving...
//pr($decodedData); die();
//standard saving code would be
$this->Model->save($decodedData);
}
请尝试以上逻辑并告诉我。
谢谢:)
答案 1 :(得分:0)
不幸的是,这不是解决方案。因为post请求中的数据格式不同:
{"name": "data[FieldName]", "value": "testvalue"}