views:

166

answers:

1

Hello All, I am developing my first Dashboard Widget and trying to call a webservice. But I keep on getting XMLHTTPRequest status 0.

Following is the code

    var soapHeader = '<?xml version=\"1.0\" encoding=\"utf-8\"?>\n'
                             +'<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\"&gt;\n'

                             +'<soap:Body>\n'
                             +'<UsersOnline xmlns=\"http://wsSync\" />\n'
                             +'</soap:Body>\n'
                             +'</soap:Envelope>';


var destinationURI = 'http://ws.storan.com/webservicesformraiphone/wssync.asmx';

var actionURI = 'http://wsSync/UsersOnline';
function callWebService() {
  try{
       SOAPObject = new XMLHttpRequest();
       SOAPObject.onreadystatechange = function() {fetchEnd(SOAPObject);}
       SOAPObject.open('POST', destinationURI, true);


       SOAPObject.setRequestHeader('SOAPAction', actionURI);
       SOAPObject.setRequestHeader('Content-Length', soapHeader.length);
       SOAPObject.setRequestHeader('Content-Type', 'text/xml; charset=utf-8');
       var requestBody = soapHeader;
       SOAPObject.send(requestBody);


  } catch (E)
  {
     alert('callWebService exception: ' + E);
  }
}

function fetchEnd(obj)
{

   if(obj.readyState == 4){ 

        if(obj.status==200)
        {
            alert("Yahooooooo");
        }
   }
}

Any ideas?

Appreciatively, Mubashir

A: 

have you added

<key>AllowNetworkAccess</key>
<true/>

to the plist? if not the outside world will not be available.

You may also encounter problems if trying to cross domains.

PurplePilot
Thanks a mill that was the issue - got it fixed!!
Mubashir Ahmed