从Ajax执行PHP脚本,而不需要等待答案(也不需要守护进程)
execute a PHP script from Ajax without expecting an answer (and no daemons)
我希望你能帮助我解决这个问题:
我的系统运行在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页面。
相关文章:
- 如何在不需要单击按钮的情况下获取选项的值
- Javascript不需要的关闭行为
- 删除客户端浏览器上不需要的内容
- 不允许在字段中输入不需要的字符
- 不需要的JSON响应
- 如何使图像适合TD,而不需要包装在不同的屏幕分辨率上
- 使用一个Javascript函数提交多个表单可以在FF中工作,而不需要其他浏览器
- jQuery自动完成显示不需要的动态html标记
- 在Knockout js中创建一个包含多行的表,而不需要推送
- AngularJs正在解码HTML字符(不需要)
- jQuery regex从文本链接-添加不需要的域到链接
- 防止从浏览器到应用商店的不需要的重定向
- 外部解析RSS提要,不需要像谷歌和服务器端那样的任何库
- 不需要的异步事件调度
- 是否有任何不需要后端的验证码角度指令
- Ajax 请求给出不需要的响应
- Jquery/javascript:加载页面时不需要的重复函数
- 为什么Java代码需要编译,而JavaScript代码不需要
- Angular SPA中不需要的页面刷新
- 从Ajax执行PHP脚本,而不需要等待答案(也不需要守护进程)