用Ajax.Request (使用prototype)调用PHP文件中的某个方法的最佳方式是什么?我用Form.serialize提交了一个表单,所以我想添加一个参数(比如要调用的方法的名称),然后在服务器脚本上检查它。类似于:
var params=Form.serialize("someform")+"&=method='check_data'";
new Ajax.Request('somescript.php',{method:'post',parameters:params,onSuccess:
function(response)
{
.. do something with the response在somescript.php中:
if($_POST["method"] == "check_data")
{
check_data();
...
}这是可行的,但我确信有更好或更简单的方式来调用远程方法(ala MVC)。有什么想法吗?
发布于 2010-01-15 20:46:08
对于普通的PHP方法,在任何情况下都不会这样做。它打开了一个巨大的潜在安全漏洞。即使您限制了可以以这种方式调用的命令,从长远来看,这也不是一个好方法。
要么继续你已经做的事情:定义一个可以传递给PHP脚本的命令列表(例如command=delete,command=update,command=copy,任何你需要的),并使用switch调用它们。
或者使用带有可从外部安全调用的方法的类:
class myCommands
{
function copy() { ... }
function delete() { ... }
function update() { ... }
}然后,在PHP文件中传递如下命令
if (method_exists($class, $_POST["method"]))
call_user_func(array($class, $_POST["method"]));https://stackoverflow.com/questions/2071487
复制相似问题