2013-01-16 101 views
4

我有一個使用Cordova 2.0.0的Eclipse內置的Android應用程序。當使用Eclipse調試器構建並加載到手機中時,應用程序工作正常,但是當我在AndroidManifest文件中設置android:debuggable =「false」時,jQuery.ajax()POST失敗。我無法告訴我LogCat跟蹤中的失敗原因。Android debuggable = false導致jQuery.ajax POST在Cordova/Phonegap Eclipse項目中失敗

這裏的jQuery.ajax電話:

jQuery.ajax({ 
    url: that.endpoint, 
    data: that.data, 
    dataType: "json", 
    type: "POST", 
    contentType: "application/json", 
    success: successHandler, 
    error: errorHandler, 
    timeout: serviceTimeout 
}); 

當機器人:可調試=「真」它工作正常,並進入到成功處理程序,但是當它的android:可調試=「假」時,進入到failureHandler,只有textStatus設置爲「錯誤」,沒有別的表明它失敗的原因。當它失敗時,似乎該帖子不會發生,因爲我可以看到它沒有打到我嘗試呼叫的web服務。

有沒有人有任何想法,爲什麼可調試標誌可能會以這種方式影響我的應用程序?

「debuggable」標誌會影響日誌級別以外的其他事情嗎?

任何提示或指針將不勝感激。

乾杯

回答

5

找到原因吧。我的代碼很好。問題在於我試圖調用的web服務的SSL證書。雖然我的瀏覽器表示沒問題,但當我使用SSL證書檢查器(例如http://www.geocerts.com/ssl_checker)檢查它時,它告訴我證書層次結構存在問題。修復證書允許我的代碼工作。

我如此看來,Android是更嚴格與它的SSL證書檢查

+0

謝謝。我真的花了很多時間試圖找到問題。它也適用於我。 –

0

當你有你的應用程序設置爲調試=假,從這裏應用越來越它的數據,你必須指定URI。處於調試模式時,您的權限會放寬,而不是處於調試模式。請參閱此參考文獻:http://developer.android.com/guide/topics/providers/content-provider-basics.html#Permissions

您的代碼看起來很好,而且它僅在將應用程序設置爲更嚴格的debug = false時告訴我您沒有正確設置URI權限。無論如何,這就是我首先要看的地方。

+0

感謝崖從未有過這個問題與應用程序的iPhone版本(和它沒有證書在調試模式下運行時檢查。) - 好理念。我檢查了這些東西,但我已經獲得了INTERNET許可。我會在我的答案中解釋解決方案。 – icewhite

+0

具有完美的感覺。此外,如果我無法將數據拉入我的某個應用程序,也可以立即進行調查,這也是一個很好的信息和知識點。 – cliffbarnes

相關問題