Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/192.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法在Android应用程序中使用JSON web服务_Javascript_Android_Json_Web Services - Fatal编程技术网

Javascript 无法在Android应用程序中使用JSON web服务

Javascript 无法在Android应用程序中使用JSON web服务,javascript,android,json,web-services,Javascript,Android,Json,Web Services,我正在使用HTML5和JS在Android中做一个项目,使用JAX RESTful在Eclips上成功创建了一个web服务,该服务可以从浏览器访问(获取所有参数的JSON输出) 现在,试图从Eclips IDE解析Andriod虚拟设备中的JSON,这是行不通的。当我今天早些时候尝试时,我可以从外部免费的JSON测试URL解析JSON,但现在即使再次使用完全相同的代码,它也无法工作。同样,当在普通浏览器Chrome/Firefox上试用时,即使它不工作,但它在Eclips内部的内置浏览器中工作良

我正在使用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>

var-xmlhttp;
函数init(){
xmlhttp=新的XMLHttpRequest();
}
函数saveLocal(){
var sellerid=document.getElementById(“id”);
变量url=”http://localhost:8080/PlayerServer/webresources/com.playerentity.player/“+sellerid.value;
//变量url=”http://api.geonames.org/citiesJSON?north=44.1&south=-9.9&east=-22.4&west=55.2&lang=de&username=demo;“这在以前和现在都只在内置的eclips浏览器中起作用。
open('GET',url,true);
xmlhttp.send(空);
xmlhttp.onreadystatechange=函数(){
if(xmlhttp.readyState==4){
if(xmlhttp.status==200){
var seller=eval(“+xmlhttp.responseText+”);
seller=JSON.stringify(seller);
var seller1=JSON.parse(卖方);
document.getElementById(“lastName”).value=seller1.lastName;
document.getElementById(“firstName”).value=seller1.firstName;
document.getElementById(“Email”).value=seller1.lastspokenwords;
}否则{
警报(“xmlhttp状态失败”+xmlhttp.responseText);
}
警报(“就绪状态故障”+xmlhttp.responseText);
}
};
}
呼叫卖家restful Web服务
输入卖方ID:
名字
姓氏:
电邮地址:
请帮帮我

谢谢,,
Ramesh

它在emulator中工作吗?或者在任何设备中?使用您的ip地址或10.0.2.2,而不是使用localhost?现在我检查并发现var url=“”;这显示了解析后的JSON输出,但没有显示我的本地主机地址。。不过,我可以在内置浏览器的Eclips中解析localhost JSON。@srikanth,我正在试图弄清楚如何更改Glassfish服务器的默认IP,以使我的Web服务在其上运行。你知道怎么做吗?不要更改Glashfish服务器ip,如果服务器在android应用程序中运行本地工作站,请通过保持10.0.2.2“+sellerid.value来更改url