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

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?
 
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:
Back
Topo