0

首先,我是 jquery 和 ajax 的初学者,我想做的是在链接中查看整个 json 文件中的示例

http://soap.madarat.jo/Services/BusinessApplication1-DomainService1.svc/json/gettasks

以及编辑样本的可能性是什么,

 <!DOCTYPE HTML>
 <html>
 <head>
<title>json test</title>
<script src="js/json2.js" type="text/javascript"></script>
<script src="js/jquery-1.4.2.js" type="text/javascript"></script>
<script src="jtip.js" type="text/javascript"></script>

  <script type="text/javascript">

  function query() {
        var xmlhttp = new XMLHttpRequest();
        xmlhttp.open("GET", "http://soap.madarat.jo/Services/BusinessApplication1-       DomainService1.svc/json/gettasks", false);
        xmlhttp.send();
        var results = JSON.parse(xmlhttp.responseText);
        var html = '<ol>';
        alert(results.GetTasksResult);
        if (results.GetTasksResult != null) {
            var title;
            alert(results);
            for (var i = 0; i < results.GetTasksResult.RootResults.length; i++ ) {

                entity = results.GetTasksResult.RootResults[i];
                html += '<li>'+entity.DoctorID +' by <b>'+ entity.TaskNote +'</b></li> <br><br> ';
            }
            document.getElementById('results').innerHTML = html;
        }
    }



  </script>
 </head>
 <body>

    <button type="button" onclick="query()">jquery</button>
        <div id="results" />


</body>
</html>

但是当我点击按钮时没有任何反应,

为什么会这样

谢谢你

4

1 回答 1

0

您没有正确使用您的请求者对象。你所做的只是发出一个请求,但没有等待它的回复。此代码异步工作,但您认为它是同步的,这就是您在获得数据之前就开始处理数据的原因。

使用 jQuery 发出 Ajax 请求

$.ajax({
   type: "GET",
   url: "http://soap.madarat.jo/Services/BusinessApplication1-DomainService1.svc/json/gettasks",
   success: function(data, status, xhr){
       data = data + "" == data ? $.parseJSON(data) : data;
       var el = $("#results").append("<ol></ol>").children("ol").first();
       if (data.GetTaskResult) {
           $.each(data.GetTaskResult.RootResult, function() {
               el.append("<li>" + this.DoctorID + " by <b>" + this.Tasknote + "</b></li>");
           });
       }
   }
});

这可能有错误,但它应该与您的代码大致相同。

另外,你儿子不需要添加 json2 库,我不知道你的 jtip。

我能给你的最好的建议

尝试首先熟悉您正在使用的库。在你的情况下,这将是 jQuery。它使您编写独立于浏览器的 Ajax 代码变得更加简单。即使它在那里,你也没有使用过它。学习它,使用它。浏览它的所有文档以了解如何使用它以及为什么这样做是明智的,不应该花费你一天的时间。

jQuery 文档

于 2012-04-11T20:57:57.487 回答