首页 > 解决方案 > Ajax 重新加载页面而不是提交请求

问题描述

我有一个 Ajax 脚本,它会导致整个页面重新加载,而无需在脚本中提交请求的 URL。服务器日志将页面 URL 显示为重新提交。添加警报表明该函数正在运行,但嵌入的 URL 似乎被忽略了。单独使用时,脚本中的请求 URL 返回正确的数据。

为什么不应用嵌入式 URL?

同一页面上的另一个 Ajax 脚本使用名为xhttp而不是xfiles的 var 可以正常工作,因此没有冲突。

 function rlist() {
        var xfiles = new XMLHttpRequest();
        xfiles.onreadystatechange = function() {
            if (this.readyState == 4 && this.status == 200) {
                document.getElementById("filelist").innerHTML =
                this.responseText;
            }
        };
        xfiles.open("GET", "/cgi-bin/cnc.cgi?precert~patients~rlist~813527153~0975184859230735~~6306919737~622156596S", true);
        xfiles.send();
    }

目标是刷新上传文件的小表格。responseText 包含带有链接的表格 html。但这不可能是这里的问题,因为 URL 从一开始就没有提交。

标签: javascriptajaxajaxform

解决方案


Swetank Poddar 实际上有正确的想法……事实证明,这是用户错误。我在 javascript:void(0) 中省略了冒号并不断忽略它。因此 Ajax 运行正常,但链接中的拼写错误导致页面随后重新加载。这一切都太快了以至于不明显,服务器上的数据库将最后处理的命中显示为首先加载页面的链接,这也是重新加载页面的链接。


推荐阅读