1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

[Javascript]http_request.readyState é 1. Porquê?

Discussão em 'Web Development' iniciada por Armadillo, 31 de Janeiro de 2008. (Respostas: 2; Visualizações: 1856)

  1. Armadillo

    Armadillo Folding Member

    Greetings!

    o resultado que obtenho para http_request.readyState é 1 em vez de ser 4. Alguem tem alguma ideia de como resolver isto?

    Código:
    function makeRequestProduto(url, parameters, ID_LinhaProduto) {                        //Funcao para retornar Detalhes do Produto
    
        http_request = false;
        http_request = new XMLHttpRequest();
        if (http_request.overrideMimeType) {
            http_request.overrideMimeType('text/xml');
        }
        if (!http_request) {
            alert('Cannot create XMLHTTP instance');
            return false;
        }
        alert(http_request.status);
        http_request.open('GET', url + '?' + parameters, true);
        http_request.onreadystatechange = preenche_detalhesArtigo(ID_LinhaProduto);
    
        http_request.send(null);
        
    }
    
    
    function preenche_detalhesArtigo(ID_LinhaProduto){
        document.getElementById('div_aguardar').style.visibility = 'visible';            //mostrar loading
        document.getElementById('div_aguardar').style.width= 160;
        document.getElementById('div_aguardar').style.left= screen.width-185;
        document.getElementById('div_aguardar').style.top= screen.top-0;
        
        alert ('http_request.readyState=='+http_request.readyState);
    [COLOR=Magenta]     if (http_request.readyState == 4) {           //nao entra [/COLOR]
            if (http_request.status == 200) { 
    //...
    
    
    Se retirar o parametro ID_LinhaProduto da funcao makeRequestProduto funciona, porque?
     
  2. p3dro

    p3dro Power Member

    Penso que o problema esteja no onreadystatechange, visto que este serve para indicar o nome da função que vai ser utilizada aquando da resposta do servidor.

    No teu caso estás a chamar a função e não apenas a indicar o seu nome.


    Tenta mudar o teu código para algo deste tipo:

    Código:
    http_request.onreadystatechange = function(){
      preenche_detalhesArtigo(ID_LinhaProduto);
    }
     
    Última edição: 31 de Janeiro de 2008
  3. Armadillo

    Armadillo Folding Member

    got it!!

    Era isso!

    Obrigadao p3dro ;)
     

Partilhar esta Página