我正在使用 Jquery mobile 构建一个 phonegap 应用程序,我使用 ajax 调用与 tomcat 服务器通信。我的所有脚本都位于应用程序中。我的第一个 ajax 调用有效,而我的第二个 ajax 调用不适用于 Windows Phone 8,但适用于 Android 和 iOS。
我使用的是单域,也使用了跨域标志,以防第二次 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 调用。
希望我能在您的帮助下解决这个问题,我们将不胜感激。谢谢。
最佳答案
这可能与缓存问题有关 - 要尝试解决此问题,请尝试在序列化数据中添加其他随机值。你可以引用这个
Prevent browser caching of jQuery AJAX call result
我在 ajax 调用中遇到了类似的问题,这个随机变量解决了这个问题
关于javascript - 第二个 ajax 调用在 Phonegap Jquery 移动 Windows 手机 8 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18551059/