2013-08-31 75 views
2

我正在使用Jquery mobile構建一個phonegap應用程序,我使用ajax調用與tomcat服務器進行通信。我所有的腳本都位於應用程序中。我的第一個ajax調用工作,我的第二個Ajax調用不適用於Windows Phone 8,它可以在Android和iOS中工作。第二個Ajax調用不起作用Phonegap Jquery移動Windows Phone 8

我正在使用單域,並且還使用了跨域標誌,以防萬一第二個Ajax調用仍然沒有運氣。我在每個JQM頁面中都有ajax調用,只有在登錄頁面中的ajax調用工作,並且所有其他ajax調用都不起作用,雖然我得到(HTTP 200 OK)作爲響應,但在Tomcat中看不到請求登錄服務器(儘管我可以看到第一次登錄ajax請求)。

我認爲在初始ajax調用(登錄)期間創建的jsession ID在導航到下一個JQM頁面期間會以某種方式丟失。

這是Ajax調用我用我的應用程序,

request = $.ajax({ 
url: "http://X.X.X.X/Servlet/Login", 
type: 「post」, 
data: serializedData 
}); 

我已經在應用中的下列標誌,雖然我沒有使用跨域(所有呼叫都以相同的IP做)。

$(document).bind("mobileinit", function() { 
       $.support.cors=true; 
       $.mobile.allowCrossDomainPages = true; 
       $.mobile.pushStateEnabled = false; 
       $.mobile.touchOverflowEnabled = false; 
       $.mobile.defaultPageTransition = 'slide'; 
       $.mobile.defaultDialogTransition = 'pop'; 
       $.mobile.transitionFallbacks.slide = 'none'; 
       $.mobile.transitionFallbacks.pop = 'none'; 
       $.mobile.buttonMarkup.hoverDelay = 0; 
       $.mobile.phonegapNavigationEnabled = true; 
      }); 

我已經在我使用的表格中設置了data-ajax=「false」

此外,我必須刪除event.preventDefault(); Windows Phone 8其他明智的提交按鈕被點擊頁面刷新後沒有采取任何行動。

我想再次說明,我的代碼在Android和iOS中完美工作(只添加了跨域標誌)。但在Windows Phone 8中,我無法對同一臺服務器進行第二次Ajax調用。

我希望我可以用你的幫助解決這個問題,任何領導都會非常感激。謝謝。

回答

0

我不得不啓用從Windows Phone 8的Internet Explorer的cookies來解決我的問題。希望這有助於解決某人的挫折感。

1

這可能與緩存問題有關 - 嘗試解決此問題,請嘗試在序列化數據中添加其他隨機值。您可以參考這個

Prevent browser caching of jQuery AJAX call result

我有一個類似的問題與Ajax調用這個隨機變量解決了這個問題

+0

感謝您的評論,但我的問題是cookie在Internet Explorer設置中被禁用。 – Tobio

-1

我有同樣的問題。我禁用緩存並修復問題:

request = $.ajax({ url: "http://X.X.X.X/Servlet/Login", 
        type: 'post', 
        data: serializedData, 
        cache: false 
       }); 
相關問題