Pergunta

Estou fazendo um pedido para um programa CGI usando AJAX. A resposta me envia conteúdo de comprimento. Meu propósito é exibir dinamicamente o progresso resposta. Por que eu preciso para iniciar uma função no valor onreadystate de XHR objeto a ser 3. Mas o pedido não parece adquirir esse número status. Em vez disso, vai diretamente do estado 1 para o estado 4. O que eu estou ausente?

Foi útil?

Solução

A resposta poderia estar indo tão rápido que você simplesmente não notá-lo no estado 3. Especialmente se você estiver executando em localhost, a resposta poderia ser transmitida muito rapidamente. Você pode tentar definir um alerta quando chega a fase 3 para testar se ele está realmente chegando lá. Além disso, acredito internet explorer diz que é um erro de acesso a resposta na fase 3 assim poderia haver problemas de compatibilidade.

Outras dicas

Se você estiver executando em localhost, então, provavelmente, o browser é nunca chegar a chance de correr entre o tempo que envia o pedido eo tempo que obtém a resposta ...

  1. navegador abre uma conexão, define readyState a 1
  2. navegador envia pacote para processo de servidor
  3. processo do servidor recebe o pacote, recebe prioridade de agendador
  4. servidor retorna dados para o navegador, e os rendimentos controle da CPU. Navegador continua a execução.
  5. navegador vê todos os dados foram recebidos, define readyState a 4.

Para encurtar a história: não conte com indo para o estado "receber".

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top