2013-05-01 26 views
0

我正在使用PhoneGap開發一個具有填寫表單的應用程序。在提交時,數據應該作爲JSON對象發送到我們的託管網站,但提交失敗,並且當我請求XMLHttpRequest.responseText時,它是空白的。PhoneGap使用JQuery提交JSON表單數據.ajax

這裏是我的代碼

$('#myform').submit(function() { 
    var obj = $('#myform').serializeObject(); 
     $.ajax({ 
       type: 'POST', 
       url: 'myurl.php', 
       data: obj, 
       success: function(){ 
        alert("Thank You For Your Submission"); 
       }, //end success 
       error: function(XMLHttpRequest, textStatus, errorThrown) { 
        console.log(XMLHttpRequest.responseText); 
        console.log(textStatus); 
        console.log(errorThrown); 
        alert("ERROR"); 

      } 
      }); 
} 

我根據我的代碼關閉從http://samcroft.co.uk/2012/posting-data-from-a-phonegap-app-to-a-server-using-jquery/後的,我想不出什麼導致我的情況下失敗。這個應用程序是Android,我使用的網站由Yahoo託管,但我允許它在我的AndroidManifest.xml中。

任何幫助將不勝感激。

+0

當你在console.log(obj)後得到它時,它說了什麼?在'success'函數中'console.log(obj)'會發生什麼?如果你允許所有域名會發生什麼? (以驗證它不是白名單問題。)你能告訴我們服務器和logcat日誌嗎? – MBillau 2013-05-01 20:28:00

+0

console.log(obj)爲我的表單數據輸出正確的名稱 - 值對,我測試了它。我的成功功能永遠不會被調用,因爲提交總是失敗。 – 2013-05-01 20:31:39

+0

logcat只記錄responseText和errorThrown爲空,沒有錯誤或錯誤消息。 – 2013-05-01 20:38:21

回答

0

我不認爲你的ajax調用有什麼問題。 問題可能是身份驗證。託管網站是否需要某種登錄?衆所周知,帶有PhoneGap的ajax調用無法返回401錯誤,並返回空白(可能與您收到的一樣)。

問題在於電話JIRA(Jira issue)並且正在進行中。 如果需要驗證,您需要在您的電話中添加一個額外選項:beforeSend,其中您設置requestheader包含驗證標頭和用戶名+密碼

+0

我發送數據的頁面不需要驗證,但是其他頁面可以。我嘗試在.ajax調用中使用簡單的用戶名和密碼字段,但沒有運氣,並且我收到了beforeSend調用的錯誤。 – 2013-05-02 21:29:02