Javascript JSON数据不是来自txt文件
我在一个名为“hello”的文件夹中创建了两个文件index.html和jsontext.txt index.htmlJavascript JSON数据不是来自txt文件,javascript,json,tomcat,Javascript,Json,Tomcat,我在一个名为“hello”的文件夹中创建了两个文件index.html和jsontext.txt index.html <!DOCTYPE html> <html> <head> <title>Experiment</title> </head> <body> <p id="demo"></p> <script> var a=""; var b=
<!DOCTYPE html>
<html>
<head>
<title>Experiment</title>
</head>
<body>
<p id="demo"></p>
<script>
var a="";
var b="";
var xmlhttp=new XMLHttpRequest;
var url="hello/jsontext.txt";
xmlhttp.onreadystatechange = function(){
if(xmlhttp.readyState==4&&xmlhttp.status==200){
var values=JSON.parse(xmlhttp.responseText);
a=values.name;
b=values.pwd;
}
}
xmlhttp.open("GET", url, true);
xmlhttp.send();
document.getElementById("demo").innerHTML=a+" "+b;
</script>
</body>
</html>
我将文件夹hello移动到tomcat webapps文件夹。启动tomcat,然后打开页面说localhost:8080/hello/index.html
页面正在加载,但没有值。如何从JSON到javascript检索数据
对不起,这太傻了。我正在学习编码,甚至这个程序也是其中的一部分。所以请帮忙
编辑
<!DOCTYPE html>
<html>
<head>
<title>Track Page</title>
<style>
html, body {
height: 100%;
margin: 0;
padding: 0;
}
#map {
height: 100%;
}
</style>
</head>
<body>
<div id="map"></div>
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyAVD0ngfhOFs5rnww7UFyz9rN6UznOIZ1U&callback=initMap"
async defer></script>
<script>
var http=new XMLHttpRequest();
var url="jsontext.txt";
var marker;
var user_lat,user_lng;
function initMap() {
http.onreadystatechange = function(){
if(http.readyState == 4 && http.status == 200){
var coordinates=JSON.parse(http.responseText);
user_lat=coordinates.latitude;
user_lng=coordinates.longitude;
var map = new google.maps.Map(document.getElementById('map'), {
center: {lat: user_lat, lng: user_lng},
zoom: 8
});
marker = new google.maps.Marker({
map: map,
draggable: true,
animation: google.maps.Animation.DROP,
label:'Driver1',
position: {lat: user_lat, lng: user_lng}
});
marker.addListener('click', toggleBounce);
}
}
http.open("GET",url,true);
http.send();
}
function toggleBounce() {
if (marker.getAnimation() !== null) {
marker.setAnimation(null);
} else {
marker.setAnimation(google.maps.Animation.BOUNCE);
}
}
</script>
</body>
曲目页
html,正文{
身高:100%;
保证金:0;
填充:0;
}
#地图{
身高:100%;
}
var http=new XMLHttpRequest();
var url=“jsontext.txt”;
var标记;
var用户lat、用户lng;
函数initMap(){
http.onreadystatechange=函数(){
如果(http.readyState==4&&http.status==200){
var坐标=JSON.parse(http.responseText);
用户_lat=坐标。纬度;
用户_lng=坐标。经度;
var map=new google.maps.map(document.getElementById('map'){
中心:{lat:user_lat,lng:user_lng},
缩放:8
});
marker=新的google.maps.marker({
地图:地图,
真的,
动画:google.maps.animation.DROP,
标签:'Driver1',
位置:{lat:user_lat,lng:user_lng}
});
marker.addListener('click',toggleBounce);
}
}
http.open(“GET”,url,true);
http.send();
}
函数toggleBounce(){
if(marker.getAnimation()!==null){
marker.setAnimation(null);
}否则{
setAnimation(google.maps.Animation.BOUNCE);
}
}
AJAX是异步的。在AJAX响应发生之前,您正在将
a
和b
放入innerHTML
。您需要在回调函数中执行此操作
xmlhttp.onreadystatechange = function(){
if(xmlhttp.readyState==4&&xmlhttp.status==200){
var values=JSON.parse(xmlhttp.responseText);
a=values.name;
b=values.pwd;
document.getElementById("demo").innerHTML=a+" "+b;
}
}
还是不走运。页面是空白的,没有。它正在工作。谢谢“未找到资源”时出错,现在我将代码中的url更改为
jsontext.txt
替换hello/jsontext.txt
。因此,现在它的工作。非常感谢。使用这个,我必须在一个项目上工作。我这样做只是为了了解情况。“你帮了我!”巴默说。有没有其他方法可以调用ajax。我希望这通电话每3秒钟通一次。如何操作?使用setInterval
定期运行函数。Javascript控制台中有错误吗?当你遇到JS问题时,这应该是你第一个看到的地方。
xmlhttp.onreadystatechange = function(){
if(xmlhttp.readyState==4&&xmlhttp.status==200){
var values=JSON.parse(xmlhttp.responseText);
a=values.name;
b=values.pwd;
document.getElementById("demo").innerHTML=a+" "+b;
}
}