我正在使用jquery mobile 1.4实现一个简单的移动网络应用程序(我在单个html文件中使用单页模型 - page1和page2)
以下是我到目前为止所尝试的代码。请帮我解决这个问题。
问题,
如何限制第2页的直接访问。 http://localhost:8080/myApp/#Page2
这是从客户端处理会话的正确设计吗?
直接在浏览器窗口中点击网址http://localhost:8080/myApp/#Page2
。我看到page2正在出现然后消失,最后出现了page1。如果sessionStorage中没有SessionID,我想直接显示page1对象
我做错了什么?请指正。
my.js文件
$(document).on('pagebeforecreate','#page2', function(event) {
var SessionID = sessionStorage.getItem("SessionID");
if(SessionID) {
$.mobile.pageContainer.pagecontainer('change', "#page2");
}else {
$.mobile.pageContainer.pagecontainer('change', "#page1");
}
});
$(document).on("pageinit","#page1",function() {
$.ajax({
url : "/myApp/rest/fetchJson",
type : "POST",
dataType : "json",
data : formData,
contentType : "application/json",
cache : false,
success : function(data) {
sessionStorage.setItem("SessionID", data.SessionID);
$.mobile.pageContainer.pagecontainer('change', "#page2", {
transition: 'none'
});
}
}); //Ajax ends
}); //page init ends
谢谢,
阿苏
答案 0 :(得分:0)
尝试创建一个方法javascript来验证会话是否存在ajax请求:
var sessionExist: function () {
return $.ajax({
url: 'checksession_file_onserver',
data : params,
type: 'get',
dataType: 'json'
})
}
在文件服务器上:
if(session_exist){
return true;
}else {
return false;
}
页面限制直接访问:
var sessionStatus = sessionExist();
if(sessionStatus === false) {
redirect to page ->> example location.hash = 'your page'
}