前端页面跳转带token-骚操作

本文探讨了前端页面跳转时遇到的问题,包括使用window.location.reload和$(window).attr('location', url)导致的页面未更新问题,以及F5刷新页面的处理。提出通过修改route.js中的pageJump方法来实现正确跳转和数据获取。同时,提到了性能问题,并警告不要轻易使用这种方法,建议使用更优的页面跳转策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

声明:非必要不要使用该方法,会有存在一些问题,在此只是提供思路。

发现存在的问题:
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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值