gpt4 book ai didi

javascript - PhoneGap 应用程序不会连续两次查询服务器

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:16:35 26 4
gpt4 key购买 nike

情况是这样的:

我有一个 PhoneGap 应用程序和一个 Tomcat 服务器。该应用程序通过 $.ajax POST 调用向服务器查询一些数据并显示它。

我第一次尝试按应用程序 UI 上的某个按钮执行查询时一切顺利,但如果我第二次尝试同样的操作,服务器将无法获得查询,并且应用程序显示与上次相同的数据。看起来它正在应用程序内浏览器中捕获数据...

有什么想法可以让应用每次都实际查询服务器吗?

非常感谢!

编辑:这是我的代码

PhoneGap 代码:

function showDialog() {
var sessionid = window.localStorage.getItem("sessionid");
$.mobile.showPageLoadingMsg();
$.ajax({
type: "POST",
url: "https://192.168.7.56:8443/Mobile_Signature/service/pdf-signature",
data: { action : "get-txcertificates" , sessionid : sessionid },
success: function(result) {
$.mobile.hidePageLoadingMsg();
CertificatesDialog.show(function() {}, function() {alert("some error");}, JSON.parse(result));
}
});
}

这是接收 POST 查询并且只在第一次调用的 servlet 代码:

if (request.getParameter("action").equals("get-txcertificates")) {

System.out.println("Obtaining certificates");
String user = DataController.getInstance().getUserID(sessionid);
String access_token = DataController.getInstance()
.getTxAccessToken(sessionid);
try {
System.out.println("getting certificates with user " + user
+ " and accesstoken: " + access_token);
X509Certificate[] certs = ServiceFactory.getServiceWrapper(
ServiceFactory.SW_SERVICE).getUserCertificates(user,
access_token);

JSONArray certsArray = new JSONArray();
for (X509Certificate c : certs) {
System.out.println("dn: " + c.getSubjectDN().toString());
certsArray.put(c.getSubjectDN().toString());
}
response.getWriter().print(certsArray);

} catch (NoSuchMethodException | MessageNotAuthenticatedException e) {

e.printStackTrace();
}

最佳答案

找到了一个虚拟解决方案来避免在 iOS 6 中的 POST 请求中缓存:

生成一个随机数并将其作为参数添加到您的请求中。像这样:

var randomnumber = Math.floor(Math.random()*1001);
$.ajax({
type: "POST",
url: "http://yoururl/yourservice",
data: { foo : "bar" , nocaching : randomnumber },
success: successCallback
});

通过添加随机数参数,每个 POST 请求在浏览器中看起来都不同,因此它不再缓存它。无论服务器是否读取它。

希望这对某人有帮助。

关于javascript - PhoneGap 应用程序不会连续两次查询服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14395702/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com