Невозможно вызвать веб-сервис на основе REST, используя AJAX (простой javascript) в PhoneGap для IPhone - PullRequest
0 голосов
/ 19 мая 2011

Plz help,

Я просто вызываю веб-службу на основе отдыха в моем новом приложении PhoneGap для Iphone.

Я использую XCode 3.2.3, в котором я установил каркас PhoneGap, и он отлично работает.

Разработан простой код JavaScript, который использует AJAX. Ниже приведен код.

Этот код отлично работает в: IE, Morzilla и Safari Браузер моего Mac Pc также на Safari браузер Iphone Simulator, но когда я интегрирую этот код в index.html моего приложения PhoneGap в папке www, он не дает никакого ответа.

<html>
<head>
<script language="javascript" type="text/javascript">


    function callingRestBasedWebService()
    {

        alert('In callingRestBasedWebService');

        var username = document.getElementById('usernameid').value;
        var password = document.getElementById('passwordid').value;
        var xmlhttp;
        if (window.XMLHttpRequest)
        {// code for IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp=new XMLHttpRequest();
        }
        else
        {// code for IE6, IE5
            xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.onreadystatechange=function()
        {
            if (xmlhttp.readyState==4 && xmlhttp.status==200)
                {
                    var responseXML = xmlhttp.responseText;
                alert("ResponseXML="+responseXML);

                if (window.DOMParser)   //Creating DOM Object for Morzilla  for parsing XML
                {
                    parser=new DOMParser();
                    xmlDoc=parser.parseFromString(responseXML,"text/xml");
                }
                else // Internet Explorer   // Creating DOM object for IE for parsing XML
                {
                    xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
                    xmlDoc.async="false";
                    xmlDoc.loadXML(responseXML);
                }

                    x=xmlDoc.getElementsByTagName("Login");
                    if(x[0].getElementsByTagName("status")[0].childNodes[0].nodeValue == 'Success')
                    {
                        alert('Login Successfull');

                    }else {
                        alert('Login Failed');
                    }


                }
        }

        xmlhttp.open("GET","http://pc-a401115.patni.com:8080/BankWebService/resources/validateLogin?username="+username+"&password="+password,true);
        xmlhttp.send();
    }




</script>
</head>
<body>

<br><br>
Username : <input type="text" name="username" id="usernameid"><br><br>
Password :<input type="text" name="password" id="passwordid"><br><br>
<input type="button" name="Login" value="Login" onClick="javascript:callingRestBasedWebService();">
</body>
</html>

Может ли кто-нибудь помочь мне, и, пожалуйста, сообщите, если я ошибаюсь, где-то ..

Спасибо, MobileAppMaster

Ответы [ 2 ]

0 голосов
/ 31 мая 2011

Если вы используете последнюю версию пробела, вставьте после заголовка:

<script type="text/javascript" charset="utf-8" src="phonegap.0.9.5.1.min.js">
</script>
0 голосов
/ 19 мая 2011

, поскольку "pc-a401115.patni.com" не имеет записи DNS, я подозреваю, что ваш iphone не может разрешить имя хоста, что должно привести к очень долгому таймауту (обычно одна минута с пробелом в телефоне)

Попробуйте вместо этого использовать IP-адрес вашего веб-сервера.

...