2012-01-20 146 views
1

這裏是在提琴手和在瀏覽器中運行完美我的web服務: http://localhost:11458/PlayerSvc.svc/GetPLayersWCF服務,在瀏覽器工作在的PhoneGap不工作

我又試圖通過jQuery在PhoneGap的調用這個,但是失敗: 這裏是我的jQuery的PhoneGap使用Eclipse:

<script type="text/javascript"> 
$.ajax({ 
     url: 'http://localhost:11458/PlayerSvc.svc/GetPlayers', 
      dataType: 'json', 
      // timeout: 55000, 
      // beforeSend: function(xhr) { 
       //Possible to set any required headers here 
       //xhr.setRequestHeader('Authorization', 'username password'); 
      // }, 
      error: function(XMLHttpRequest, textStatus, errorThrown) { 
       alert('failed'); 
      }, 
      success: function(data) { 
       alert('success'); 
      } 
     }); 
</script> 

爲了確保有沒有錯,我的jQuery我測試了另一種Web服務使用此代碼,它是成功的。我不知道如何收集更多關於如何調試的信息。我試圖用console.log包裝我的javascript(上面的JavaScript),我無法讓它工作。正如你上面看到的,我只是使用alert函數輸出失敗的錯誤消息。有任何想法嗎?我想我可以嘗試使用try catch,然後看看我是否可以輸出異常...

+0

你在模擬器或真實設備測試?對於模擬器看Kyberias的答案。否則,請在您的網絡上使用開發計算機的網絡IP,可能在192.168。*。*範圍內。 – longhairedsi

回答

3

是否運行在Android模擬器上的PhoneGap應用程序?如果是,我認爲仿真器中的本地主機(127.0.0.1)是指仿真器本身,而不是主機。也許你需要嘗試另一個IP地址(可能是10.0.2.2的作品)。

這裏有一個問題/答案,解決這個問題:

test the localhost in android emulator

+0

是的我正在運行在Android模擬器 – LiquidChild

+0

非常感謝你!這是問題。我改變本地主機到10.0.2.2所以http://10.0.2.2:11458/PlayerSvc.svc/GetPLayers它工作。再次感謝 – LiquidChild

0

您需要允許白名單url並將您的主機地址添加到phonegap.plist文件中的外部主機。

http://geekaboo.wordpress.com/2011/11/20/ios5-whitelist-url-unauthorized-using-phonegap/

+0

嗯,我使用Android,而不是phonegap.plist文件有一個phonegap.xml,我已經添加到該文件的http:// localhost:11458,所以我不認爲這是問題..也奇怪的是測試web服務,我正在使用確保我的JavaScript不是問題,即使我沒有將它添加到phonegap.xml文件.... – LiquidChild