从Ajax执行PHP脚本,而不需要等待答案(也不需要守护进程)

execute a PHP script from Ajax without expecting an answer (and no daemons)

本文关键字:不需要 答案 守护 进程 等待 PHP 执行 脚本 Ajax      更新时间:2023-09-26

我希望你能帮助我解决这个问题:

我的系统运行在Zend Framework上,我在它的最新版本中安装了jQuery。我有一个接收文件的输入,它在更改时进行Ajax调用,我希望在后台进行调用,而不期望任何响应(因为脚本完成后会发送电子邮件)。我的ajax调用是这样的:

var formData = new FormData();
formData.append('file', $(this).get(0).files[0]);
$.ajax({
    url: 'uploadaddresses.php',
    type: 'POST',
    data: formData,
    dataType: 'json',
    async:true,
    processData: false,
    contentType: false,
    beforeSend: function(){
        bootbox.alert("You've made your petition correctly. When finished, an email will be sent to you.")
    },
    error: function(err) {}
});
return false;

尽管如此,调用仍在等待响应(甚至FireBug也向我显示uploadaddresses.php仍在执行…)。我做错了什么?我应该如何做到最好?我希望避免使用守护程序和系统调用,因为系统限制。。。

提前非常感谢:)

如果您希望uploadaddresses.php立即返回HTTP响应但继续处理,请查看PHP中的pcntl_fork

这是主文档页面:http://php.net/manual/en/function.pcntl-fork.php

下面是一个你可能想要效仿的好例子:http://php.net/manual/en/function.pcntl-fork.php#94338

为ajax调用创建一个成功方法,并具有如下内容:

console.log("Done");

通过这种方式,您可以知道是否完整和成功,但前提是您正在查看开发工具。除非您指定了输出,否则它不应在调用后继续运行。也许你的PHP代码中有错误?

编辑:如果你不能解决这个问题,你可能也想发布你的PHP页面。