javascript - 异步更新网站的代码不起作用?详细说明
问题描述
下面是两个调用 python 文件来更新 html 的 Javascript 函数。顶部的工作正常,但底部的工作不正常。没有抛出错误。
function button(key) {
var xhttp = new XMLHttpRequest();
xhttp.open("GET", "example.py?keyword="+key, false);
xhttp.send();
var response = xhttp.responseText;
var array = response.split('|');
document.getElementById("demo").innerHTML = array[0];
document.getElementById("demo2").innerHTML = array[1];
}
function current(id) {
var xhttp2 = new XMLHttpRequest();
xhttp2.open("GET", "example.py?infokey="+id, false);
xhttp2.send();
var response = xhttp2.responseText;
document.getElementById("demo3").innerHTML = response;
}
我已经广泛调试了python代码,这不是问题。有任何想法吗?
解决方案
第二个功能不起作用,因为您试图在响应来自服务器之前读取响应。
尝试这个:-
function current(id) {
var xhttp2 = new XMLHttpRequest();
xhttp2.onreadystatechange = function () {
if (this.readyState === 4 && this.status === 200) {
var response = xhttp2.responseText;
document.getElementById("demo3").innerHTML = response;
}
xhttp2.open("GET", "example.py?infokey="+id, false);
xhttp2.send();
}
推荐阅读
- javascript - 如何在这个 PHP --> HTML --> JS 代码中将字符串值传递给 JS 函数?
- java - Maven and installing a command-line program
- powershell - 从另一个使用命名参数和路径中的空格调用一个 powershell 脚本
- awk - 按小时计算列中的值并添加标题
- .net-core - 已发布的自包含 dotnet 核心应用程序的运行时要求
- c# - WPF 应用程序中所有窗口的相同菜单栏或工具栏
- neo4j - 在 Neo4j 中寻找 K 最短路径
- html - 获取最接近标签外文本的值
- assembly - 为什么“sub esp, 96”、“lea eax, [esp+16]”和“mov [esp+4], eax”?(asm intel 语法)
- javascript - 为每个选定的行获取表格的单元格值?