V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
dtgxx
V2EX  ›  Vue.js

使用 vue 框架,刷新界面的时候请求 401,不知道啥原因

  •  
  •   dtgxx · 2022-02-19 12:53:19 +08:00 · 2272 次点击
    这是一个创建于 1038 天前的主题,其中的信息可能已经有所发展或是发生改变。
    vue 的框架,不知道问题出在哪里。。
    我点击左侧的 sidebar ,在界面内进行跳转 https://xxx/a/b 是没有任何问题的,F12 提示的也是发送请求 a/b 路由下要请求的 js 地址 c/d
    但是我在 a/b 的界面手动刷新,或者手动直接粘贴 https://xxx/a/b 的时候,就提示 401 了,原因是 F12 里面请求的地址不是 c/d 了,而是我手动输入的 a/b ,其他的界面这样手动刷新访问都没问题,大佬们帮忙想想可能是啥原因呢?


    我理解的比如在 url 访问路由,vue 会找到 xxx.vue 来通过 js 请求相应的地址,但是我访问 a/b 这个路由的时候,压根就没进到 a/b 的 xxx.vue ,而是直接去 get 请求 a/b 了,不知道为什么。。
    7 条回复    2022-02-20 17:50:07 +08:00
    lybcyd
        1
    lybcyd  
       2022-02-19 13:06:35 +08:00
    Asyncway
        2
    Asyncway  
       2022-02-19 13:11:46 +08:00
    看下打包后的 js 文件引用路径是否为相对路径,然后配置一下<base />
    IvanLi127
        3
    IvanLi127  
       2022-02-19 13:57:02 +08:00
    op 你这是有损描述呐,我猜是 web 服务器没正确地把 index.html 吐给 https://xxx/a/b 。看下规则是不是漏掉了这个路径或者是被其他规则覆盖掉了。
    dtgxx
        4
    dtgxx  
    OP
       2022-02-20 01:21:44 +08:00
    @lybcyd @Asyncway @IvanLi127 感谢各位,还是不行,都不是以上的情况,我在 APP.vue 里面通过 beforeCreate 打印 log 也无法输出,这个感觉就好像,完全没走后端,直接就报 GET http://localhost:8101/a/b 401 (Unauthorized). 其他页面都不会这样,完全一样的写法,不知道为啥了。。
    dtgxx
        5
    dtgxx  
    OP
       2022-02-20 01:22:23 +08:00
    @lybcyd @Asyncway @IvanLi127 完全没走前端代码,打错了
    IvanLi127
        6
    IvanLi127  
       2022-02-20 12:32:41 +08:00 via Android   ❤️ 1
    @dtgxx 没走正常,一楼和我三楼的回复就是表示你的请求没办法响应前端的 index.html 文件,所以不可能执行得到前端代码。。。不出意外的话,这不是前端问题。
    dtgxx
        7
    dtgxx  
    OP
       2022-02-20 17:50:07 +08:00
    @IvanLi127 谢谢,确实是“请求没办法响应前端的 index.html 文件”这个原因造成的,我研究了一下,发现 a/b 的这个请求始终请求的是后端,而不是前端 html ,仔细找了下,发现因为 url 带有前端配置的 proxy 代理字符串 b ,所以把带 b 的所有请求都转发到后端了,所以前端没拿到,破案了,破案了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2338 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 16:04 · PVG 00:04 · LAX 08:04 · JFK 11:04
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.