2016-06-24 79 views
0

我正在構建我的第一個PhoneGap應用程序,目前只是一個概念驗證。從PhoneGap應用程序到服務器的JSON調用 - 沒有迴應

我想要做的是執行Ajax調用(使用JSONP)從後端服務器上的數據庫檢索記錄。該代碼在瀏覽器中運行良好,但是當我使用PhoneGap Build創建Android .apk時,該調用沒有任何作用。 打開頁面,並使用本地Javascript。我甚至可以使用localStorage。

但似乎應用程序不允許我通信到互聯網。

在config.xml中我已經加入

<access origin="*"/> 

以及

<config-file platform="android" parent="/manifest" mode="merge"> 
    <uses-permission android:name="android.permission.INTERNET"/> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> 
</config-file> 

下面是相關的jQuery代碼做呼叫:

var json = new Object(); 
var docunid = $("#policyNumber").attr("data-docunid"); 
$("#statusInfo").html("Loading " + docunid + "..."); 
json["unid"] = docunid; 
$.ajax({ 
    url: "http://www.example.com/websites/losscontrol/ajax_GetInspectionDetails.jsonp", 
    dataType: "jsonp", 
    data: json 
}); 

當代碼執行,正在顯示消息「正在加載xxxxxxxx ...」,則不顯示任何消息。在瀏覽器中,它一切正常,檢索數據和回調函數顯示的值。

我缺少什麼?

更新: 感謝西蒙的評論,我設法解決它。網絡人員已經阻止了Web服務器從外部訪問,而我不知道它。 因此,當我在防火牆內的計算機上的瀏覽器中執行代碼時,它的工作正常,但是當我的手機上的PhoneGap應用程序(並因此在防火牆外)調用相同的URL時,它根本無法使用。

+0

控制檯中的任何錯誤?你的應用中是否有內容安全策略? – Phonolog

+0

控制檯中沒有錯誤(假設您在通過Web訪問它時討論)。我正在使用Firebug來檢查。 我沒有內容安全策略,我使用它並將現在放入並測試。 –

+0

更新:我添加了的HTML文件,但我沒有看到任何改變。仍然沒有加載。 –

回答

0

如果您還沒有這樣做,您需要安裝Cordova whitelist插件。這個問題讓我陷入了一段時間。在這裏還有其他線程有同樣的問題。

+0

我想找到一些關於如何正確地做到這一點的文檔。 Dobe沒有將他們提供的即插即用插件列入白名單,所以我嘗試添加在config.xml中。 但我沒有看到任何改變。我已經在config.xml文件中有 ... –

+0

不確定如何將插件添加到項目環境中;我使用VS2015自動添加它們。但是在一個較舊的項目中,我只有(例如)沒有'spec'和'source'字段的。其他插件是否可以正常工作?如果不是,你可以嘗試一個容易測試的'設備'。 – quilkin

相關問題