我正在创建一个Web应用程序,它使用CakePHP作为后端,JQuery作为前端。为了与服务器通信,我想使用ajax从JQuery发出GET和Post请求。这就是我现在所拥有的:
function submit_registration(fname, lname, email, pass)
{
var arr = { data: {User: { fname: fname, lname: lname, email: email, password: pass }}};
$.post('http://localhost/cake2/users/add', JSON.stringify(arr), function(response){
alert(response);
})
}
这是在JQuery中。这是CakePHP中的添加操作:
public function add()
{
$this->layout = null ;
if ($this->request->is('post'))
{
$data = $this->request->input('json_decode');
$this->User->create();
if ($this->User->save($data))
{
$this->set('data', "success");
$this->render('/General/JsonMode2/');
}
else
{
$this->set('data', "failure to save");
$this->render('/General/JsonMode2/');
}
}
else
{
$this->set('data', "failure to post");
$this->render('/General/JsonMode2/');
}
}
它将JSON渲染回前端。我的问题是,当我提交请求时没有任何反应。我发出警报以确保调用submit_registration函数。任何人都可以给我一个线索作为发生的事情吗?
答案 0 :(得分:2)
将脚本功能更改为:
function submit_registration(fname, lname, email, pass)
{
var data = {User: { fname: fname, lname: lname, email: email, password: pass }};
$.post('http://localhost/cake2/users/add', data, function(response){
alert(response);
})
}
并更改$ data = $ this-> request-> input('json_decode');到
$data = $this->data;
要调试响应,请使用CakeResponse,如下所示:
return new CakeResponse(array('body'=> json_encode('...message here...'),'status'=>200));