【问题标题】:Browser strips encoded dot character from url浏览器从 url 中去除编码的点字符
【发布时间】:2014-12-19 04:46:13
【问题描述】:

我有一个允许搜索的网络应用程序。因此,当我转到somedomain.com/search/<QUERY> 时,它会根据<QUERY> 搜索实体。问题是,当我尝试搜索 ... 时,它没有按预期工作(这很明显)。但令我惊讶的是,如果我手动输入 somedomain.com/search/%2E 的 url,浏览器(经过测试的 Chrome 和 IE11)会将其转换为 somedomain.com/search/ 并发出没有必要负载的请求。

到目前为止,我还没有找到任何可以说它不可能完成的事情,所以我来到了这里。现在我只有一个选择:将... 替换为__dotPlaceholder__ 之类的东西,但这对我来说就像一个肮脏的黑客攻击。

欢迎任何解决方案(js 或非 js)。任何关于浏览器为什么要去除 url 编码点的信息也是不错的选择。

【问题讨论】:

  • 这可能是服务器重定向问题吗?
  • @ZathrusWriter 我认为不会。如果我打开 Chrome 开发控制台,它会告诉我唯一的请求是 %2E 已经被剥离的请求

标签: javascript url browser


【解决方案1】:

不幸的是,RFC3986 的一部分定义了在这种情况下要规范化和剥离的 URI 点段,即 http://example.com/a/./ 变为 http://example.com/a

更多信息请参见https://www.rfc-editor.org/rfc/rfc3986#page-33

【讨论】:

    猜你喜欢
    • 2015-07-11
    • 1970-01-01
    • 1970-01-01
    • 2014-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-06
    • 1970-01-01
    相关资源
    最近更新 更多