0

我刚刚注意到这种encodeURI使用 with的行为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 上,它的行为符合预期。

谢谢

4

1 回答 1

2

Firefox 在 URL 栏中显示 URL 的解码版本,以便用户更容易阅读。它仍然将编码的字符串发送到服务器。

此外,如果您复制 URL 栏的内容并将其粘贴到文本编辑器中,其中将包含编码字符。

于 2013-10-30T09:56:27.270 回答