我试图制作一个进度条,所以我使用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/

10-12 00:02