You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用XMLHttpRequest在JS GET请求中传递多值失败,求解决方法

解决JavaScript GET请求多参数传递失败的问题

嘿,我一眼就发现问题啦!你的GET请求在拼接多参数时犯了两个小错误:

  • 多个URL参数之间必须用&分隔
  • 字符串拼接时,status="+status"后面缺少了+ "&"连接部分,导致两个参数直接连在一起,服务器根本没法正确解析

修正后的基础代码

<script type="text/javascript">
function updatestatus(status, id){
    var xmlhttp=new XMLHttpRequest();
    // 补上&分隔符,完成正确的参数拼接
    xmlhttp.open("GET","adminfunction.php?status="+status+"&id="+id, false);
    xmlhttp.send(null);
}
</script>

额外优化建议

为了避免参数里的特殊字符(比如空格、中文、特殊符号)导致请求出错,建议用encodeURIComponent()对参数值进行编码:

<script type="text/javascript">
function updatestatus(status, id){
    var xmlhttp=new XMLHttpRequest();
    // 对参数值编码,避免特殊字符干扰
    var encodedStatus = encodeURIComponent(status);
    var encodedId = encodeURIComponent(id);
    xmlhttp.open("GET","adminfunction.php?status="+encodedStatus+"&id="+encodedId, false);
    xmlhttp.send(null);
}
</script>

另外,同步请求(第三个参数设为false)会阻塞浏览器主线程,导致页面卡顿,推荐改成异步请求并处理回调:

<script type="text/javascript">
function updatestatus(status, id){
    var xmlhttp=new XMLHttpRequest();
    var encodedStatus = encodeURIComponent(status);
    var encodedId = encodeURIComponent(id);
    
    // 异步请求的回调逻辑
    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            // 请求成功后的处理,比如提示更新完成
            console.log("状态更新成功");
        }
    };
    
    xmlhttp.open("GET","adminfunction.php?status="+encodedStatus+"&id="+encodedId, true);
    xmlhttp.send(null);
}
</script>

内容的提问来源于stack exchange,提问作者TCR

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:20:02