AJAX发布到CakePHP控制器动作

时间:2012-04-23 13:40:15

标签: ajax cakephp cakephp-1.3

我将一些用于注册的表单值发布到cakePHP控制器操作中。代码就像这样

var params='firstname='+encodeURIComponent(firstname) +'&lastname='+encodeURIComponent(lastname)+'&emailid='+encodeURIComponent(emailid)+'&password='+encodeURIComponent(password);

xmlhttp.open('POST', url, true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send(params);

这是在发帖,我可以在POST部分来源的Firebug中看到它

firstname=name&lastname=name&emailid=mymailid&password=123123

但是当我在动作中打印$ this->数据时,它并没有显示任何值。我甚至使用了$ _POST,它也返回了任何东西..

我在这里做错了什么??

2 个答案:

答案 0 :(得分:0)

您缺少使用POST发送变量时所需的请求标头:

试试这个:

var params='firstname='+encodeURIComponent(firstname) +'&lastname='+encodeURIComponent(lastname)+'&emailid='+encodeURIComponent(emailid)+'&password='+encodeURIComponent(password);

xmlhttp.open('POST', url, true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.setRequestHeader("Content-length", params.length);
xmlhttp.send(params);

答案 1 :(得分:0)

尝试控制器如下:

$this->params['url']; // this will give an array of parameters

或者,$this->request['url']; // this will give an array of parameters