从html页面创建一个Web服务:客户端,我如何获得结果而不是页面的代码源

时间:2013-04-15 09:17:29

标签: html web-services

我正在尝试做以下事情: 我想从位于Web服务器中的page.html获取两个动态数据(纬度和经度),我希望将它们作为Web服务获取: 以下是执行位于服务器中的网页的结果: {“结果”:[{“纬度”:“36.81881”,“经度”:“10.16596”}]} 这正是我想在我的客户端应用程序中恢复的问题,但问题是我无法得到结果,我只能得到页面的代码源。 Html位于服务器中。 这是我在客户端上用来从服务器获取数据的方法:

function latLong()
{

    var ajax = new XMLHttpRequest();
ajax.open("GET","http://localhost/AtitLongiWebService.html",true);
ajax.send();
ajax.onreadystatechange=function(){
     if(ajax.readyState==4 && (ajax.status==200||ajax.status==0)){
     alert(ajax.responseText);    
 }
     }
}

以下是我在web服务器中的page.html:

<!--
To change this template, choose Tools | Templates
and open the template in the editor.
-->
<!DOCTYPE html>
<html>
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <script type="text/javascript">

    function startWatch(){
      if (navigator.geolocation)
        var watchId = navigator.geolocation.watchPosition(successCallback,
                                  errorCallback,
                                  {enableHighAccuracy:true,
                                  timeout:10000,
                                  maximumAge:0});
      else
        alert("Votre navigateur ne prend pas en compte la géolocalisation HTML5");
    }

    function stopWatch(){
      navigator.geolocation.clearWatch(watchId);
    }     

    function successCallback(position){
      document.getElementById("lat").innerHTML = position.coords.latitude;
      document.getElementById("long").innerHTML = position.coords.longitude;
    };  

    function errorCallback(error){
      switch(error.code){
        case error.PERMISSION_DENIED:
          alert("L'utilisateur n'a pas autorisé l'accès à sa position");
          break;      
        case error.POSITION_UNAVAILABLE:
          alert("L'emplacement de l'utilisateur n'a pas pu être déterminé");
          break;
        case error.TIMEOUT:
          alert("Le service n'a pas répondu à temps");
          break;
        }
    };

  </script>
    </head>
    <body onload="startWatch()">

        {"results":[{"Latitude":"<label id="lat"></label>",
        "Longitude": "<label id="long"></label>"}]}


    </body>
</html>

通常ajax.responseText返回结果但在这种情况下它返回代码源,有人可以帮我获取页面执行的结果而不是代码源。谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

目前您访问的网页是带有嵌入式JavaScript的标准静态HTML页面。由于这是由Apache提供的(作为WAMPserver环境的一部分),它将其视为具有客户端 javascript的纯HTML页面。也就是说,只需将文件发送到客户端而不运行任何内容。

要运行服务器端 javascript,您需要javascript server,例如node.js