2013-03-28 54 views
0

我一直在這裏呆了很長一段時間。我正在開發一個帶手機的移動應用程序。我用android 4.0.4測試了應用程序,它工作得很好。然而,當我在2.2.3測試中,AJAX與結束,錯誤狀態:Android 2.2.3無法通過JQUERY AJAX調用SAML URL

就緒狀態= 0

HTTP狀態= 0

我試圖增加超時是很長的但仍以結果結束。我不確定是什麼問題,但我開發了另一個應用程序使用相同的ajax調用,它在android 2.2.3上工作正常,但這個時間不同的是它調用SAML URL(身份提供商)。

代碼就像波紋管:

$.ajax({ 
       url: "...."+Math.random(), 
       type: "POST", 
       data: { 
        j_username: uname, 
        j_password: pword 
       }, 
       cache: false, 
       timeout: (100*1000), 
       success: function(data, textStatus, jqXHR){ 
        var contentType = jqXHR.getResponseHeader('Content-Type'); 
        if (contentType == 'application/atomsvc+xml'){ 
        }else{ 
         alert("....."); 
         // clearTimeout(timer); 
         $.mobile.hidePageLoadingMsg(); 
         enableAllButtons(); 
        } 
       }, 
       error: function(jqXHR, textStatus, errorThrown){ 
        // clearTimeout(timer); 
        alert("Error Thrown : " + errorThrown); 
        alert("status : " + jqXHR.status + " " + jqXHR.statusText); 
        alert("ready state : " + jqXHR.readyState); 
        alert("......."); 
        $.mobile.hidePageLoadingMsg(); 
        enableAllButtons(); 
       } 
      }); 

真希望有人能幫助我與此有關。

非常感謝您提前給出的意見。

問候,

阿曼達

回答

0

代碼似乎要被罰款,除了一件事

您在URL中使用Math.random()。您還可以使用cache:false 嘗試從URL,同時刪除Math.random() jQuery緩存使用相同的東西。

此外,雖然你得到readyState = 0那麼它將是一個CrossDomain問題。在AJAX選項中使用JSONP(dateType:'JSONP'

+0

Hi Alla, 我試着在eclipse emulator for android 2.2.3上運行,它工作得很好。 我認爲它的crossDomain問題,但實際上我已經通過anyconnect連接到了我的VPN。 對於我可能如何解決這個跨域問題,您有任何建議嗎?尤其是對於Android 2.2.3,因爲在其他版本上工作正常。 – Amanda 2013-03-28 09:53:25

+0

如果您起訴jQuery,那麼您必須閱讀以下內容:http://stackoverflow.com/questions/11736431/make-cross-domain-ajax-jsonp-request-with-jquery – 2013-03-28 12:04:46