我试图制作一个进度条,所以我使用APC apache扩展名来做到这一点:http://pastebin.com/TBui6ckT
我曾经使用:header("Percent:".$percent);
在呼叫站点时将百分比作为标题。因此,我回到索引页面,使用一个ajax调用该进度页面,并检查我创建的标题为“ Percent”的页眉,然后将主页上的内容更改为该数字。这是用于此的脚本:http://pastebin.com/NkQv2Uq0 var test;只是暂时的,我将其更改为:
if(xmlhttp.getResponseHeader("Percent")<=100) ...
我想这是标题,只是以字符串形式返回“ Header:'percent'%” ...但是我不确定。我也知道它是标头,因为如果我输入:
document.getElementById('progress_number').innerHTML=xmlhttp.getAllResponseHeaders();
它返回每个标头,包括百分比。但奇怪的是,它不会更新自身。您可能会认为它会与:setTimeout(onSubmit(upload_id), 999);
循环,但不会。谢谢您的帮助。
最佳答案
在第二个pastebin中,您有一个错误
if(test=1)
它应该是
if(test==1)
您遇到的第二个错误是setTimeout错误
setTimeout(onSubmit(upload_id), 999);
应该
setTimeout(function(){ onSubmit(upload_id); }, 999);
第三
if(xmlhttp.getResponseHeader("Percent")<=100)
getResponseHeader
返回一个字符串,因此您正在将字符串与数字进行比较。您将需要使用parseInt()
if( parseInt( xmlhttp.getResponseHeader("Percent"), 10) <= 100 )
关于php - Ajax无法识别页面中的定制响应头,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9120678/