Ajax не распознает пользовательский заголовок ответа со страницы - PullRequest
1 голос
/ 03 февраля 2012

Я пытаюсь сделать индикатор выполнения, поэтому я использовал расширение apache apc, чтобы сделать это: http://pastebin.com/TBui6ckT

Я использовал: header("Percent:".$percent);, чтобы указать процент в качестве заголовка при вызове сайта. Поэтому я вернулся на страницу индекса, которая использовала ajax, чтобы вызвать эту страницу прогресса, проверить созданный мной заголовок «Процент» и изменить что-то на главной странице на этот номер. Вот сценарий для этого: http://pastebin.com/NkQv2Uq0 тест var; это просто временно, я изменю его на:

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

Я думаю, что это заголовок, просто возвращающий "Header: 'процент'%" в виде строки ... но я не уверен. Также я точно знаю, что это заголовок, потому что если я вставлю: document.getElementById('progress_number').innerHTML=xmlhttp.getAllResponseHeaders(); Он возвращает каждый заголовок, включая проценты. Но, как ни странно, это не обновляет его сам. Вы могли бы подумать, что это будет цикл с: setTimeout(onSubmit(upload_id), 999);, но это не так.

Спасибо за помощь.

1 Ответ

2 голосов
/ 03 февраля 2012

В вашем втором пастбине есть ошибка

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 )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...