声明:非必要不要使用该方法,会有存在一些问题,在此只是提供思路。
发现存在的问题:
1.使用window.location.reload; 会有问题,$(window).attr(‘location’,url) 会有问题, F5 刷新页面会有问题(这里可以进行做全局标识重新跳转到当前页面,但是我也没做)。上面两个操作仅仅是将当前页面重新加载,并没有请求后台。
原因就是每次调用上面的方法 的html页面都是从localStorage取出来的原因。我是通过改成调用方法解决的 route.js 的 pageJump()。
2.性能问题
3.暂未发现其他问题
强烈建议不要使用该方法,只是提供一个思路。
点击a标签,页面跳转。
<script src="/js/route.js"></script>
<li><a href="javascript:void(0);" onclick="router('menu')" class="sf-folder-document">菜单</a></li>
route.js
$(function(){
var urlp1 = window.location.search;
router = function (route){
localStorage.setItem('route',route);
get(route + (urlp1?urlp1:""), function (resp) {
StandardPost(resp)
})
}
pageJump = function (ulrParam){
var rout = localStorage.getItem('route');
get(rout + (ulrParam?ulrParam:""), function (resp) {
StandardPost(resp)
})
}
// POST任意内容并跳转
function StandardPost(html) {
localStorage.removeItem('callbackHTML');
localStorage.setItem('callbackHTML',html);
window.location.href = 'page' ;
}
function requset(url, method, data, callback200, callback403, dataType, contentType){
$.ajax(url,{
type: method,
data: JSON.stringify(data),
dataType: dataType,
contentType: contentType,//这个参数也是header参数
headers: {'Authorization': "bearer "+ window.localStorage.getItem('accessToken')},
statusCode: {
200: function (response) {
if (typeof callback200 === "function"){
callback200(response);
}
},201: function (response) {
alert('1');
},400: function (response) {
alert('400');
},404: function (response) {
alert('404');
},403: function (response) {
if(callback403){
if (typeof callback403 === "function"){
callback403(response);
}
}else {
window.localStorage.removeItem('accessToken');
$(window).attr('location', 'login');
}
}
},success: function () {
},});
}
//get请求
get = function get(url, callback) {
requset(url, "GET", null, callback, null,null, null);
}
})
page.html
<script>
document.write(localStorage.getItem('callbackHTML'));
document.close();
</script>