首先,我想感謝所有在這裏stackoverflow的專家,通過閱讀問題,看例子代碼和閱讀我已經能夠得到這個答案點。再一次感謝你!我幾乎在那裏... PhoneGap Android連接到WCF服務
我一直在花費數小時尋找解決方案,我已閱讀了關於此問題的許多帖子。看起來這是一個問題,很多其他人一直在努力。如果有人能夠幫助解決這個令人沮喪的問題,我將不勝感激。
我所有的開發都在我的本地機器上完成。 (Win 7的,Visual Studio的11beta)
WCF服務在IIS快遞託管自己的端口或IIS 7.5(.NET Framework 4.0中)
第二web應用只用HTML5/jQuery的在IIS快遞託管在不同的端口上。
也在我的本地機器上使用Eclipse 3.7.2和Android SDK 17。 它似乎所有的軟件運行正常。 Android模擬器工作,安裝的PhoneGap /科爾多瓦圖書館等 我使用的是Android 4.0.3與1.6.0科爾多瓦
我要求援助,以找出爲什麼我的PhoneGap模擬器Ajax調用不會通過到我的WCF REST服務。現在我沒有一個真正的Android設備來測試程序,因此我必須使用模擬器。
一些細節:
我有一個WCF REST服務開發的.Net接收&在JSON和JSON-P發送。
我已經在另一個端口上測試了第二個Web應用程序,以確保允許跨域調用。
我還使用了Firefox的RESTclient插件,並可以使用它來成功創建JSON和JSON-P調用。 [http://restclient.net/] 所以我確信WCF服務正在按照它應該的方式工作。不應該有任何跨域問題。
當我將Html文件與我知道的jQuery一起工作在Visual Studio中時,爲了eclipse,複製到phonegap應用程序中,我嘗試對我的WCF服務器進行基本調用,但無法連接到服務器。
根據android文檔,我已將URL從[http:// localhost:50425/LoginService.svc/GetData]更改爲[http://10.0.2.2:50425/LoginService.svc/GetData] :[ http://developer.android.com/guide/developing/devices/emulator.html#networkaddresses]
我已經創建了一個允許以下設置的所有白名單:
[接入起源= 「*」]
在cordova.xml文件中。請參閱:[http://professionalaspnet.com/archive/2012/05/15/Whitelisting-Domains-in-Cordova-_2800_PhoneGap_2900_-Android.aspx]
根據AndroidManifest.xml文件設置了正確的權限以[http://docs.phonegap.com/en/1.8.1/guide_getting-started_android_index.md.html#Getting%20Started%20with%20Android]
當我發起呼叫時,我使用$。ajaxSetup錯誤功能捕獲網絡錯誤等,並顯示警報錯誤消息。使用console.log()來確保它傳遞這個函數時沒有錯誤。
當通話實際發生時,我收到一個「錯誤的請求 - 無效的主機名。HTTP 400.請求主機名無效。」
如果調用會成功,我會在Visual Studio中使用斷點來確定已經進行了調用並查看請求。
如果我可以訪問「外部」主機,還有其他方法可以從仿真器進行測試嗎?在這種情況下,確保模擬器實際上可以找到服務? 是否有任何工具或其他配置設置需要完成?
我甚至刪除了我的模擬器並創建了一個新的模擬器,但它仍然無法連接到WCF服務。
我真的很喜歡這個工作,想建立一個完整的phonegap應用程序,但不能繼續,如果我不能打電話給Web服務。
任何意見,將不勝感激。
我開發了一個使用RESTful WebService的PhoneGap應用程序。您應該使用瀏覽器瀏覽您的js代碼,無論是firefox w/firebug或chrome。如果這可以起作用,模擬器可能會發出一些問題。也許有些設置? – furier
您好,謝謝您的回覆。我同意它必須是模擬器內的設置,因爲應用程序本身可以在Visual Studio中使用jsonp回調。只是想證明我可以從web服務器的phonegap中獲取數據,所以我可以繼續開發... – Vortex
那麼我的猜測是你使用JQuery來查詢Web服務,所以你實際上並沒有爲此使用PhoneGap。那麼它不是一個PhoneGap js問題,idk如果它可能是PhoneGap包裝器項目或模擬器中的一些設置,但其中的一個將是我的猜測。 – furier