vue在hash模式下,第三方返回的地址拼接不对,请问该怎么解决?

我想要的是:
http://localhost:8080/#/validate?ticket=ST-2153-1uZbG0aHNuJPQHhcOYg7-cas.9cair.com

重定向返回到浏览器显示的是:
http://localhost:8080/?ticket=ST-2153-1uZbG0aHNuJPQHhcOYg7-cas.9cair.com#/validate

这个顺序能有什么办法改变吗?

阅读 3.9k
2 个回答
新手上路,请多包涵

看你的描述,我猜你应该是想Oauth2鉴权回调取ticket值。

拼回来的路径有问题,hash模式下router拿不到正确的query

let code = window.location.search.split('?')[1]
code = code ? code.split('=')[1] : code
console.log(code)

这样可以拿到ticket的值

新手上路,请多包涵
let a="http://localhost:8080/?ticket=ST-2153-1uZbG0aHNuJPQHhcOYg7-cas.9cair.com#/validate";
let b=new URL(a);
let c=b.origin+b.pathname+b.hash+b.search;
console.log(c);

c应该就是你要的结果:

http://localhost:8080/#/validate?ticket=ST-2153-1uZbG0aHNuJPQHhcOYg7-cas.9cair.com
推荐问题