【问题标题】:I can't access search parameter values that start with '#'我无法访问以 \'#\' 开头的搜索参数值
【发布时间】:2022-12-10 23:42:55
【问题描述】:

我正在尝试访问我的搜索参数。我可以访问我的name 键的值,但我似乎无法访问我的value 键的值。我认为它与开头的哈希#有关。

这是我的网址

  • http://localhost:3000/all/?name=Color&value=#03FFF7
const queryString = window.location.search
      if (queryString) {
        const urlParams = new URLSearchParams(queryString)
        const name = urlParams.get('name')
        const value = urlParams.get('value')
        console.log(`This is the ${value}`)
        this.setState({ name, nameValue: value })
      }

【问题讨论】:

标签: javascript reactjs


【解决方案1】:

听起来您可能遇到了搜索参数问题。在 URL 中使用搜索参数时,散列符号 (#) 用于表示片段标识符的开头,它指定浏览器应导航到的页面内位置。片段标识符不会发送到服务器,因此在哈希符号之后指定的任何搜索参数都不会包含在请求中。

要访问搜索参数的值,您需要将其移至 URL 中的散列符号之前。例如,如果您的原始网址是:

http://www.example.com/page#name=value

您需要将其更改为:

http://www.example.com/page?name=value

通过将搜索参数移到散列符号之前并使用问号 (?) 表示查询字符串的开头,您将能够访问服务器上的参数值。请记住,查询字符串在 URL 中可见,因此您可能需要考虑使用片段标识符(散列符号后的部分)来表示您不想公开显示的任何敏感信息。我希望这有帮助!

【讨论】:

  • 感谢您花时间解释。我从数据库中获取该值,因此我无法控制它的显示方式。我想我可能不得不以编程方式消除它。
猜你喜欢
  • 2022-11-15
  • 2011-12-21
  • 2017-12-08
  • 2016-07-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多