我刚注意到encodeURI
与form
一起使用的这种行为。我使用encodeURI
编码了一个网址。
<html>
<head>
</head>
<body>
<form id="form">
</form>
<button id="button">Click Me to submit form</button>
</body>
<script>
var button = document.getElementById("button");
button.onclick = function() {
var form = document.getElementById("form");
var url = "b.html?name=" + encodeURIComponent("First Name");
form.action = url;
form.method = "post";
form.submit();
}
</script>
</html>
在提交表单时,我没有得到我在浏览器地址栏中的预期。我在期待
b.html?name=First%20Name
我得到的是 -
b.html?name=First Name
有人可以告诉我为什么会这样吗?
注意 -
我只在firefox中遇到此问题(我使用的是24.0版本)。在Chrome上,它的行为符合预期。
由于
答案 0 :(得分:2)
Firefox在URL栏中显示URL的解码版本,以便更容易为用户阅读。它仍然将编码的字符串发送到服务器。
此外,如果您复制URL栏的内容并将其粘贴到文本编辑器中,则会在其中包含编码字符。