初学者,跟着《 Head First HTML5 》在学,书上说本地托管也可以,然后我就用了本地托管(应该就是本地服务器吧?远程托管就是阿里云腾讯云之类的吧?)。本地服务器的建立是根据这个做出来的...
然后代码是根据书上写的,如下
function updataSales(responseText){
var salesDiv = document.getElementById("sales");
salesDiv.innerHTML = responseText;
}
window.onload = function(){
var url = "http://localhost/chapter6/sales.json";
var request = new XMLHttpRequest();
request.open("GET",url);
alert("!!!!!");
request.onload = function(){
if (request.status == 200){
updataSales(request.responseText);
}
}
request.send(null);
}
但是由于网页中 id="sales"元素的内容并未改变,在试探哪里错的过程中发现
request.onload 这个状态可能没有触发(?),用一个 alert("!!!!!");,放在 request.onload 的外面都是能弹出来的,但是放到里面就不会触发。
然后是第二个问题,request.status = 0。。。
url 肯定没有输错。
请问各位能否在不换用远程托管的前提下解决这些问题呢?这些问题又是因为什么发生的啊?
另外还想请教几个自己在学的过程中感到不解的事儿
①.onload 这个在 window.onload 里指的是网页的 DOM 建立完成吗?那放在 request.onload 里,又是以什么事情做完为触发的呢——请求发送过去并且服务器返回了数据吗?
②XMLHttpRequest 的 open 方法,书上这么说『 open 方法听上去好像不仅会在请求对象中设置这些值,还会打开连接并获取数据。但实际上并非如此,open 只是用一个 url 建立一个请求,并告诉这个请求对象要使用哪种请求,以便 XMLHttpRequest 验证连接。』
书上这段话『在请求对象中设置这些值』我听懂了,就是给这个对象的一些属性赋值吧?『打开连接并获取数据』就是指向服务器要求 URL 定位的文件的数据吧?但之后的斜体字我就理解不了,它的意思是,open 这个方法仅仅只告知了服务器说我可能会通过什么方式想你要哪里的文件,但是我没有索要,你也不必发送吗??
谢谢愿意解答的人~!