2012-04-20 89 views
1

我正在用PhoneGap在Android中開發本機應用程序。並且我已經在Visual Studio(c#)中創建了一個Websevice,它將返回一個XML片段。所以我已經將返回的XML值轉換爲JSON,並在Mozilla Firefox中進行了測試。但是當我試圖用JQuery來調用AJAX的Webservice時。我試着編碼一個警報消息,它將返回服務的數據。但它似乎不返回任何數據。任何人都可以請幫助我嗎?感謝使用PhoneGap的JQuery for Android應用程序的Ajax

這裏是我的代碼:

$.ajax({ 
    type: "POST", 
    url: "http://10.0.2.2:49878/a.aspx?p_trxn_type=doLogin&p_phoneNumber="+phoneNumber, 
    error: function (XMLHttpRequest, textStatus, errorThrown) 
    { 
     alert("error"); 
    }, 
    dataType : "json", 
    cache:false, 
    async:false, 
    success: function (ret) 
    { 
     try { 
      var jsonObj = eval('(' + ret + ')'); 
      alert(jsonObj.Contacts.Contact['@phoneNumber']); 
      alert(jsonObj.Contacts.Contact.LastName); 
      alert(ret.Contacts.Contact['@phoneNumber']) 
      alert(ret.Contacts.Contact.LastName); 
     } 
     catch(ex) { 
      alert(ex.message); 
     } 
     console.log(ret); 
     alert(ret.length); 
     alert(ret); 
     alert(typeof ret); 
     alert("success"); 
    } 
}); 
+0

您是否獲得在控制檯中的任何錯誤? 你能列出他們嗎? – sirmdawg 2012-04-20 14:07:56

+0

警報「錯誤」是我得到的。 -_- – Newbie 2012-04-20 14:15:09

+0

它警告textStatus和errorThrown,而不是隻是「錯誤」 也嘗試使用: console.log(errorThrown); console.log(textStatus); – sirmdawg 2012-04-20 16:49:08

回答

0

你可以添加以下代碼:

$(document).bind("mobileinit", function(){ 
    $.support.cors = true; 
    $.mobile.allowCrossDomainPages = true; 
}); 

只要你的web服務不是本地託管,你應該能夠訪問它就好了,重新我的question here on StackOverflow

務必也被定義爲檢查出http://jquerymobile.com/test/docs/api/globalconfig.html,尤其是http://jquerymobile.com/test/docs/pages/phonegap.html

最後,你的錯誤函數將更好的幫助您:

error: function (XMLHttpRequest, textStatus, errorThrown) 
{ 
    alert(textStatus + " " + errorThrown); 
} 
+0

其實我的web服務是本地託管的那一刻。使用10.0.2.2:49878地址,無論如何,都會查看你給我的鏈接,非常感謝 – Newbie 2012-04-20 14:54:35

+0

通過本地託管,我的意思是在同一臺設備上,請求源自(localhost/127.0.0.1 /物理機器人設備本身) – 2012-04-21 02:26:23

相關問題