【发布时间】:2016-08-12 07:33:50
【问题描述】:
您好,我正在使用 php 在表单提交单击时提交表单,我正在使用 jquery 打开一个新窗口。
打开窗口后,php 表单会在该页面上提交,但需要 5 到 10 分钟,具体取决于文件大小,因为我在将文件上传到用户上传的 localhost 和新标签后处理文件数据想要使用 jquery ajax 显示处理后的数据进度,但是在新窗口选项卡上,ajax 请求正在发送,但如果我点击发送的请求,它们不会被发送到 chrome 网络选项卡中的服务器,它会显示这个
显示临时标题
表示服务器没有返回任何响应。
但是在表单提交完成并处理文件数据之后,jquery ajax 请求将返回状态 200k 和响应
这是我使用jqyery的表单提交新窗口打开代码
$(".btnDataMigrate").click(function (e) {
var fileName = $("#filesToUpload").val();
var path = $(this).attr("data-popupUrl")
if(fileName) {
window.open(path,'Data Migrate Files Upload Status','width=800,height=800');
} else { // no file was selected
}
});
这里是jquery ajax请求代码
function fetch_files_progess(){
$.ajax({
type:'post',
url:base_path()+'/data_migration/fetch_completed_files',
data:{},
dataType:'json',
success: function(response){
$('#notice').html(response.result);
},
error: function(response){
}
});
}
fetch_files_progess();
setInterval(function(){fetch_files_progess();}, 9000);
请帮助我如何在表单提交过程中从 jquery ajax 请求中获得响应。
另外,如果打开其他 localhost 页面,则在表单提交过程中也不要打开。
实际上,我想在 php 表单提交期间在新选项卡上完成处理文件状态。这就是为什么我在新选项卡上使用 jquery ajax 来查找已处理文件状态的原因。 我在 xampp 本地主机上。
谢谢
【问题讨论】:
-
如果您要发布一个大文件,那么您需要增加服务器对请求的响应时间。您需要增加 POST 大小、请求超时和保持活动时间。
-
@AfshanShujat 文件大小在 50kb 到 2 MB 之间,我将 php set_time_limit 设置为 0 文件正在提交并成功处理主要问题是我无法在其他页面上发送 ajax 请求php的表单提交期间
标签: javascript php jquery ajax forms