window.location.href后面的url带多个参数

需要的只是一个明传址,这种方式会把参数以明文的方式传过去,这样是不安全的。虽然在技术上是可以实现的。
<form action="#">

    <input type="text" name="d_id" id="d_id"/><input type="text" name="d_name" id="d_name"/>
    <input id="btn" type="button" value="sublimt"/>
</form>
<script>
    document.getElementById('btn').onclick = function(){
        var d = document.getElementById('d_id').value;
        var name = document.getElementById('d_name').value;
        location.href = 'a.asp?d_id=' + d + '&d_name=' + name;
    }
</script>
========================================

<form action="a.asp" method="post" οnsubmit="return send();">
    <input type="text" name="d_id" id="d_id"/><input type="text" name="d_name" id="d_name"/>
    <input id="btn" type="submit" value="sublimt"/>
</form>
<script>
    function send(){
        if(document.getElementById('d_id').value.length < 1){
            alert('请正确输入!');
            return false;
        }
        return true;
    }
</script>
### 使用 `window.location.href` 传递参数 在 JavaScript 中,可以通过设置 `window.location.href` 来实现页面跳转并携参数。这通常涉及到构建一个包含查询字符串的目标 URL。 对于简单的单个参数传递: ```javascript // 跳转至 test.html 并附名为 name 的参数, 参数值为 chen window.location.href = './test.html?name=chen'; ``` 当需要传递多个参数时,则利用 & 符号来分隔不同的键值对[^1]: ```javascript // 同时发送两个参数:name 和 age window.location.href = './test.html?name=chen&age=18'; ``` 如果要传输的对象较为复杂(比如含有特殊字符),可以先将其序列化成 JSON 字符串再作为单一参数附加到 URL 上: ```javascript let obj = { name: 'chen', age: 18 }; window.location.href = './test.html?objdata=' + encodeURIComponent(JSON.stringify(obj)); ``` 为了确保安全性,在拼接 URL 查询部分之前应该使用 `encodeURIComponent()` 函数对每一个单独的参数值进行编码处理[^3]。这样做能够防止潜在的安全风险,并保证即使存在特殊字符也不会破坏整个 URL 结构。 另外一种更通用的方法是创建一个基础 URL 变量,之后逐步添加各个所需参数形成完整的请求链接[^2]: ```javascript var baseUrl = "https://example.com/page"; var param1 = "value1"; var param2 = "value2"; var queryString = "?param1=" + encodeURIComponent(param1) + "&param2=" + encodeURIComponent(param2); window.location.href = baseUrl + queryString; ``` 上述方法不仅适用于本地文件路径 (如 ./test.html),也支持跨域访问外部网站资源 (像 https://example.com/page)。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值