【发布时间】:2015-01-28 13:22:51
【问题描述】:
我想将数据发布到 CakePHP 中的控制器,但使用 JQuery 发布总是会导致“POST http//localhost/SA/myController/editUserData/1 400 (Bad Request)”错误,我不知道为什么.
在我看来,我有以下方法,将数据发布到控制器页面
$scope.saveUser = function() {
$.ajax({
type: 'POST',
url: '<?php echo Router::url(array(
'controller' => 'myController',
'action' => 'editUserData',
0 => $userInfo['user']['id'],));?>',
data: { email: 'cabraham@delhi.k12'},//"my edited data for example"
success: function (data) {
alert(data);
}
});
我的控制器方法如下所示:
public function editUserData($id) {
if($this->request->is('post') || $this->request->is('put')) {
$this->AcsaUser->save($this->request->data('email'));//edit and save the new data
echo 'ok';
}
}
有什么想法吗??
【问题讨论】:
-
路由器的“0”键太奇怪了。为什么不是“身份证”?并将 dataType 属性设置为 ajax 对象。
-
@Alex 不是 that 奇怪,但没有必要,它可以在没有明确指定键的情况下正常工作,使用像
id这样的命名键但是不会像这样工作表示一个命名元素,这不会匹配可能的路由并生成类似/id:1的URL。