0

我正在尝试调用一个以字符串格式返回 jsonobject 的 restful webservice ..请求被发送到服务器但在这里我没有得到响应任何人都可以帮助我吗?我在chrome浏览器中测试..

 xmlhttp=new XMLHttpRequest();
 var url = "http://localhost:8080/DataWeb/rest/datastore/getData";
 xmlhttp.open("GET",url,true);
 xmlhttp.send();
 var res=xmlhttp.responseText;
 xmlhttp.onreadystatechange=function() {
      if (xmlhttp.readyState==4 && xmlhttp.status==200) {
           document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
      } else {
           document.getElementById("myDiv").innerHTML=xmlhttp.readyState +","+ xmlhttp.status;
      }
 }
4

4 回答 4

0

“没有回应”是什么意思?responseText 中没有字符串或 if() 中的代码永远不会执行?我个人会切换send()和xmlhttp.onreadystatechange()的顺序,先定义处理onreadystatechange的函数,然后发送请求。

要调查请求,您可以将其打印到控制台(在 onreadystatechange 内)

console.log(xmlhttp)

看看它实际包含什么

于 2012-05-13T07:46:12.780 回答
0

最好先分配“onreadystatechange”处理程序,然后才调用“send”方法。否则,请求会在您处理之前执行。

于 2012-05-13T07:49:31.107 回答
0

像这样更改您的代码:

var xmlhttp=new XMLHttpRequest();
var url = "http://localhost:8080/DataWeb/rest/datastore/getData";
xmlhttp.onreadystatechange=function() {
    if (xmlhttp.readyState==4 && xmlhttp.status==200) {
        document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
    } else {
        document.getElementById("myDiv").innerHTML=xmlhttp.readyState +","+ xmlhttp.status;
    }
}
xmlhttp.open("GET",url);
xmlhttp.send();

此外,请考虑使用 jQuery 等库,这样您就不必处理所有这些样板代码。

于 2012-05-13T09:38:31.513 回答
0

试试这个 jquery 代码,

 $.ajax({
  type: 'GET',
  url: "http://localhost:8080/DataWeb/rest/datastore/getData",
  dataType: "xml",
  success: function(xml){
    $("#myDiv").html(xml);
  }   
});

这样可以解决不同浏览器编写不同代码的问题。

注意:在您的页面中编写上述脚本之前,请包含最新的 jquery.js 文件。

谢谢

于 2012-05-13T14:03:21.197 回答