无法在Android应用中使用JSON Web服务

时间:2013-07-03 11:19:44

标签: javascript android json web-services

我正在使用HTML5,JS在Android上做一个项目,使用JAX-RESTful在Eclips上成功创建了一个Web服务,可以从浏览器访问(获取所有参数的JSON输出)。

现在尝试从Eclips IDE解析Andriod虚拟设备中的JSON无法正常工作。当我今天早些时候尝试时,我可以从外部免费的JSON测试URL解析JSON,但现在即使它再次使用完全相同的代码也无法正常工作。此外,当在普通浏览器Chrome / Firefox上试用时,它甚至无法工作,但它在Eclips内置的浏览器中运行良好。

这是非常奇怪的行为,但我完全陷入了这一点,而且据我所知,从情况和研究来看,这可能与同源政策有关。我已经尝试了另一个版本的Ajax代码来解析Chrome中的这个问题但同样的问题。

我认为Eclips浏览器有一些设置不适用同源策略..

在我的代码下面,

<!DOCTYPE html>
<html>
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <script language="javascript">
            var xmlhttp;
            function init(){

                xmlhttp = new XMLHttpRequest();
            }
            function saveLocal(){

                var sellerid = document.getElementById("id");
                var url = "http://localhost:8080/PlayerServer/webresources/com.playerentity.player/" + sellerid.value;
//var url = "http://api.geonames.org/citiesJSON?north=44.1&south=-9.9&east=-22.4&west=55.2&lang=de&username=demo"; This worked before and now only in the built in eclips browser. 
                xmlhttp.open('GET', url,true);
                xmlhttp.send(null);
                xmlhttp.onreadystatechange = function(){
                    if(xmlhttp.readyState == 4){

                        if(xmlhttp.status == 200){
                            var seller = eval("("+ xmlhttp.responseText + ")");
                            seller = JSON.stringify(seller);
                            var  seller1 = JSON.parse(seller);
                            document.getElementById("lastName").value = seller1.lastname;
                            document.getElementById("firstName").value = seller1.firstname;
                            document.getElementById("Email").value = seller1.lastspokenwords;
                        } else{
                           alert("xmlhttp status failure " + xmlhttp.responseText);
                        }
                       alert("Ready state failue " + xmlhttp.responseText);
                    }
                };
            }
        </script>
    </head>
    <body onload="init()">
        <h1>Call Seller restful webservice</h1>
        <table>
            <tr>
                <td> Enter Seller ID: </td>
                <td> <input type="text" id="id" size="10"/>
                    <input type="button" value="Load details of user" onclick="saveLocal()"/>
                </td>

            </tr>
            <tr>
                <td>First Name </td>
                <td> 
                    <input type="text" readonly="true" id="firstName" size="20"/>
                </td>
            </tr>
            <tr> <td> Last Name: </td>
          <!--  <td> <input type="text" readonly="true" id="lastName" size="20"/></td> --> 
            <td> <textarea rows="8" cols="22"  id="lastName" ></textarea></td>
            </tr>
            <tr> <td> Email Address: </td>
            <td> <input type="text" readonly="true" id="Email" size="20"/></td>
            </tr>
        </table>
    </body>
</html>

请帮帮我..

谢谢你, 拉梅什

0 个答案:

没有答案