当 href 属性值是 url 编码时,链接不起作用
Posted
技术标签:
【中文标题】当 href 属性值是 url 编码时,链接不起作用【英文标题】:Link doesn't work when href attribute value is url encoded 【发布时间】:2016-09-26 16:53:38 【问题描述】:为什么href属性值为url编码后链接失效?
我们不应该对其进行编码吗?在 Chrome 和 FF 中观察到相同的行为
作品
<!DOCTYPE html>
<html>
<body>
<p>Sweet fruit: <a href="http://google.com/search?q=banana">Banana</a></p>
</body>
</html>
不起作用
<!DOCTYPE html>
<html>
<body>
<p>Sweet fruit<a href="http%3A%2F%2Fgoogle.com%2Fsearch%3Fq%3Dbanana">Banana</a></p>
</body>
</html>
【问题讨论】:
【参考方案1】:它是一个受保护的链接。 这就是编码的工作方式 http://www.w3schools.com/tags/ref_urlencode.asp
这是你显示的链接,第一个被解码,第二个被编码。
http://google.com/search?q=banana http%3A%2F%2Fgoogle.com%2Fsearch%3Fq%3Dbanana
让我们看看
在这种情况下,“/”变成 %2F,“?”一个 %3F 和 "=" %3D
它是一种保护,因此无法使用该链接。 dns 无法读取。 如您所见,第一个链接可点击,而第二个链接不可点击。
【讨论】:
【参考方案2】:dns 找不到那个链接...
【讨论】:
以上是关于当 href 属性值是 url 编码时,链接不起作用的主要内容,如果未能解决你的问题,请参考以下文章