Ajax无法识别来自页面的自定义响应标头

时间:2012-02-02 22:03:08

标签: php javascript ajax header progress-bar

我正在尝试创建一个进度条,所以我使用APC apache扩展来实现:http://pastebin.com/TBui6ckT

我使用:header("Percent:".$percent);在您调用网站时将百分比作为标题。所以我回到索引页面一个用过的ajax来调用那个进度页面并检查我所做的名为“Percent”的标题,并将主页面上的内容更改为该数字。下面是脚本:http://pastebin.com/NkQv2Uq0 var test;只是暂时的,我会把它改为:

if(xmlhttp.getResponseHeader("Percent")<=100) ... 

我认为这是标题只是返回“Header:'%'%”作为一个字符串...但我不确定。我也知道这是一个事实,它是标题,因为如果我输入:document.getElementById('progress_number').innerHTML=xmlhttp.getAllResponseHeaders();它返回包括百分比在内的每个标题。但奇怪的是它没有更新它的自我。你会认为它会循环:setTimeout(onSubmit(upload_id), 999);但它没有。

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

在你的第二个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 )