我先描述一下:
我做的是一个首页的项目,需要连接大量的第三方平台,
首页和第三方平台都是 Vue 框架,并且都支持路由上的 token 登陆
现在我打开平台的页面的时候页面显示{code: 403},
查看 network,显示
url:https://127.0.0.1:9000/TESE/
code: 520
实际我使用的是 https://127.0.0.1:9000/TESE/#/workflow?token=1243
然后我手动打开标签,黏贴地址:
TM进度去 ... 进去了 ...
看样子像是被 vue-router 拦截 ... 但是想不通 window.open 和 手动黏贴有什么不一样??
补充:不需要代码,这么说吧
你通过 window.open 打开 www.baidu.com/test/#/main?token=123 进不去
你通过 手动打开新标签,地址栏黏贴 www.baidu.com/test/#/main?token=123 进去了
原因分析:
https://127.0.0.1:9000/TESE/#/workflow?token=1243
在 network 反馈的内容是:
https://127.0.0.1:9000/TESE/
虽然没有扒源码 .. 但是参考其他的项目都是能正常登陆的
所以怀疑是浏览器的策略和项目没有关系
对比2边的 Request 内容
问题出来了 ... 多了
Referer
感觉很可疑 ...是不是早期项目的安全策略 .. 禁止了第三方登陆?
感谢廖雪峰大佬的解惑:http://www.ruanyifeng.com/blog/2019/06/http-referer.html?utm_source=tuicool&utm_medium=referral
尝试通过 a 标签的 rel="noreferrer" 手动添加入口
BingGo!能打开了 .....
无妄之灾!
希望其他遇到这个问题的人能看到这个回答 ..