状況は次のとおりです。
PhoneGap アプリと Tomcat サーバーがあります。アプリは $.ajax POST 呼び出しを介してサーバーにいくつかのデータを照会し、それを表示します。
アプリの UI にあるボタンを押してクエリを初めて実行しようとすると、すべてうまくいきますが、同じことを 2 回目に試みると、サーバーはクエリを取得せず、アプリは前回と同じデータ。アプリ内ブラウザでデータをキャッチしているようです...
アプリが実際に毎回サーバーにクエリを実行する方法はありますか?
どうもありがとうございました!
編集:ここに私が持っているコードがあります
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 クエリを受け取り、初回のみ呼び出されるサーブレット コードは次のとおりです。
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();
}