当type是POST时,cakephp Ajax表单不起作用

时间:2011-05-11 16:48:32

标签: ajax forms cakephp post prototypejs

我开发了一个使用cakephp 1.1的网站,它有很多ajax元素tu同时更新多个元素,它们工作得很好。现在,我正在迁移到cakephp 1.3,但我没有这么棒的经历。

由于这个blog我能够更新多个div,但很快我再次陷入困境。

我目前的问题是ajax表单没有完成对url'/ logs / logIn'('/ controller / action')的请求。

提交表单后,Firebug向我显示错误:“找不到POST http://localhost/logs/logIn 404”,请求在原型的第1530行的函数request()中被中断:

this.transport.send(this.body);

当我直接在浏览器中写入网址时,该网站似乎正如我所期望的那样工作。当我将表单的类型从“POST”更改为“GET”时,ajax请求已完成且响应是我期望的响应,但我需要使用“POST”进行响应。

我已经阅读了很多讨论类似问题的论坛,但没有任何建议可以帮助我解决问题:

  • 我检查了我的hhtp.conf和.htaccess文件,根据安装说明它们似乎没问题(但我不确定)。
  • 我请求的操作不使用任何视图(事实上,'GET'和直接url requets函数,不需要log_in.ctp视图文件),我在尝试'POST时创建了相应的视图'ajax请求,但它仍然不起作用。

我正在使用最新版本的scriptaculous和protoype.js(1.7),我在ubuntu上使用Firefox 3.6.17。

许多人提前知道任何技巧,小费,建议或任何可以帮助我的事情。

1 个答案:

答案 0 :(得分:3)

我终于解决了问题。它与蛋糕的安全组件有关。

我所做的就是将$ validatePost变量设置为false。

我已经理解后验证已经应用于第三方帖子了,但似乎蛋糕确实对enery post请求进行了验证,甚至是那些来自主要应用程序的验证。