1
  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 我的页面 URL:file:// /home/carlos/public_html/TabuWeb2/WebContent/index.html?nick=ola&key=mund‌​o

同源策略有什么问题吗?这就是为什么我的 req.status=0 和 firebug 指向 req.send()?

谢谢

4

1 回答 1

0

它不工作的原因可能有很多,而且很难从 ajax 调用中分辨出来。

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

alert(JSON.stringify(data));

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

alert(req.responseText);

data 是一个对象,所以alert(data)不会显示太多。

另外,您的网址与当前页面是否在同一个域中?如果没有,您可能会成为同源策略的受害者。

于 2012-11-20T02:15:30.353 回答