2013-08-31 39 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 
       }); 
相关问题