不能做“GET”xmlhttprequest - 错误

时间:2012-11-20 02:06:42

标签: javascript xml get xmlhttprequest onreadystatechange

  function regist(nome,pwd){
        URL+="register?nick=" + nome + "&key=" + pwd;
        var req = new XMLHttpRequest();
        req.open("get", URL, true);//Assincrono

        req.onreadystatechange = function(){
            if (req.readyState != 4) { 
                return;
            }
            else if (req.status != 200) {// Tratamento de erro (e.g., mostrar mensagem de erro)
                return;
            }
            var data=JSON.parse(req.responseText);
                    alert(data);
            if(data.error==null || data.error==undefined){
                    document.getElementById("register").innerHTML="Registo Bem Sucedido";
                }
                else{
                    document.getElementById("register").innerHTML="Utilizador já registado - Password errada";
                }
        };
        req.send();
    };

我无法访问var数据..也许是因为“* req.onreadystatechange = function(){-----” 有什么意思?我对数据的警报不起作用,它没有被引用..你可以帮助我吗?> URL被正确定义,不用担心;)


我对同源政策问题一无所知...... GET中使用的URL是:dcc.fc.up.pt:8080/TabuWeb/rest/register?nick=ola&key=mundo 我的网页网址:file:///home/carlos/public_html/TabuWeb2/WebContent/index.html?nick = ola& key = mund o

相同的原始政策是否有任何问题?这就是为什么我的req.status = 0而firebug是指向req.send()?

由于

1 个答案:

答案 0 :(得分:0)

可能有很多原因导致它无法正常工作,而且很难从ajax调用中说出来。

首先,要查看您应该使用的数据:

alert(JSON.stringify(data));

或直接检查ajax是否返回有效的json:

alert(req.responseText);

数据是一个对象,因此alert(data)不会显示太多。

此外,您的网址是否与当前网页位于同一个域中?如果没有,您可能会成为same origin policy的受害者。