[英]Is it possible to POST to a class method in Javascript (Ajax -> PHP)?
我正在使用Ajax处理带有进度条的文件上传,目前我发布到上传脚本:
function uploadFile(revision)
{
var file1 = _("fileToUpload").files[0];
// FIXME: Developer Option
alert(file1.name+" | "+file1.size+" | "+file1.type);
var formdata = new FormData();
formdata.append("fileToUpload", file1);
formdata.append("revision", revision);
var ajax = new XMLHttpRequest();
ajax.upload.addEventListener("progress", progressHandler, false);
ajax.addEventListener("load", completeHandler, false);
ajax.addEventListener("error", errorHandler, false);
ajax.addEventListener("abort", abortHandler, false);
ajax.open("POST", "../file_upload_parser.php");
ajax.send(formdata);
}
但是,如果可能的话,我想将我的上载移到一个类方法中(假设有一个名为FileHandler的类,我希望能够开机自检到它的upload()函数。
是否可以将其发布到类的上载方法?
显然,我希望能够保留加载栏的功能,并且如果有人需要查看Javascript的源代码,则此链接指向我从本质上复制粘贴的代码并进行了一些更改的地方(upload_form.html ):
据我所知,你做不到。 您可以做的是为您的类创建一个处理程序文件,例如,假设我们有这个PHP类,
<?php
class Car {
function getCarType() {
return "Super Car";
}
}
?>
然后在您的处理程序文件中
<?php
require_once 'Car.php';
if(isset($_POST['getCarType'])) {
$car = new Car();
$result = $car->getCarType();
}
echo $result;
?>
您可以将AJAX请求发布到处理程序,可以为每个请求创建特定的处理程序,也可以拥有通用的AJAX处理程序,但是该文件可能变得很大且难以维护。
这不是关于javascript的问题,而是关于“如何在PHP中正确路由请求?”尝试查看类似Symfony的Router的内容: https : //symfony.com/doc/current/book/routing.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.