我希望你能帮助我解决这个问题:
我的系统运行在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页面。