【问题标题】:Strange URL parameters added automatically自动添加奇怪的 URL 参数
【发布时间】:2018-06-06 10:38:54
【问题描述】:

我突然有一种奇怪的行为。

奇怪的 url 参数被添加到站点中,我认为我没有将它们添加到我的代码中的任何位置。

我正在使用 webpack 4 和 Vue。这发生在 IE 上,包括 Edge 在内的所有版本,并且在本地 Chrome 中没有发生,但在我们部署到开发服务器时会发生。

这是我的网络标签

如您所见,服务器加载页面时没有查询参数,它们是在加载后添加的。

有没有人遇到过同样的问题并可以帮助找出原因?

很抱歉,我无法提供有关它的更多信息。我只是不知道这是从哪里来的。

【问题讨论】:

  • 你只使用 webpack 构建?网络选项卡中有什么 - 这是由服务器还是由 js 添加的? IE。如果通过js你可以放置断点并查看代码中的确切位置。
  • @PetrAveryanov 我使用 webpack 进行开发和构建。对于开发人员,我正在启动 webpack-dev-server 并且在 chrome 中我无法重现这一点,但使用 IE 是的。当我捆绑生产并使用 XAMPP 启动项目时,也会发生同样的情况。当生产包在 Nginx 开发服务器中时,我们也在 chrome 中使用它。所以我想这与产品或开发无关。问题是,在我的 javascript 中,我没有对应用程序加载时的 URL 进行任何更改(当我进入任何路线时都会发生这种情况)。而且我不知道应该把断点放在哪里。
  • @PetrAveryanov 关于网络选项卡,我在第一次加载时获取 http:localhost:8080,并在之后添加查询字符串
  • ...第一个请求的状态是什么?谁是 2nd 的发起者?...stackoverflow.com/questions/11618278/… >>> 你可以对 window.location 做同样的事情来跟踪 js 的变化...
  • @PetrAveryanov 我用网络标签更新了帖子。我正在尝试使用 firefox 观看 window.location.href 但没有停止调试器

标签: url webpack vue.js vuejs2 url-parameters


【解决方案1】:

问题是我将 vue-router parseQuery 设置为这样的异步函数:

async parseQuery(q) {
   let queryString = q;
   if (q.includes('token')) {
     const data = JSON.parse(`{"${decodeURI(q.replace(/&/g, '","').replace(/=/g, '":"'))}"}`);
     const jwtDecodedToken = jwtDecode(data.token);
     store.dispatch('Auth/setToken', `Bearer ${data.token}`);
     await store.dispatch('Auth/login');
     router.push({
       name: 'complete',
       params: {
         id: jwtDecodedToken.order_id, confirmNavigation: true,
       },
     });
     queryString = '';
   }
   return queryString;
 },

我猜 vue-router 不支持将 parseQuery 作为异步函数

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-28
    • 2015-12-19
    • 2022-12-16
    • 1970-01-01
    • 2012-03-21
    • 1970-01-01
    • 2011-12-12
    • 2021-04-01
    相关资源
    最近更新 更多