Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
585 views
in Technique[技术] by (71.8m points)

window.open 无法打开项目,但是手动打开新标签 + 黏贴地址就可以?!

我先描述一下:
我做的是一个首页的项目,需要连接大量的第三方平台,
首页和第三方平台都是 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 进去了


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

原因分析:
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!能打开了 .....
无妄之灾!
希望其他遇到这个问题的人能看到这个回答 ..


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...