当我提交表单

时间:2016-06-02 15:46:38

标签: html

我创建了一个表单,在另一个html页面中显示结果,但@符号在新页面中显示为%40。这是我的代码。有人可以帮忙吗?

<script type="text/javascript">
window.onload = function () {
    var url = document.location.href,
        params = url.split('?')[1].split('&'),
        data = {}, tmp;
    for (var i = 0, l = params.length; i < l; i++) {
         tmp = params[i].split('=');
         data[tmp[0]] = tmp[1];
    }
    document.getElementById('email-display').innerHTML = data.Email;

}
</script>

1 个答案:

答案 0 :(得分:0)

URL查询组件已编码。你没有完全解码它。 %40@的编码形式。从技术上讲,@不需要在查询组件中进行编码,但您的服务器正在这样做。

&=上拆分查询数据后,需要通过将%XX十六进制序列替换为相应的字节来解码生成的子字符串,然后转换生成的字节根据服务器使用的任何字符集来串字符(通常是utf-8,但并非总是如此)。

阅读RFC 3986,特别是Section 2.1Section 3.4