Я пытаюсь перенести файл в Javascript pgm, используя XMLHttpRequest. Я наблюдаю, что XMLHttpRequest.send (null), похоже, не имеет никакого эффекта. Если я использую асинхронный XMLHttpRequest, как и в приведенном ниже коде, скрипт завершается, и текст в теле отображается. Если я использую синхронный XMLHttpRequest, установив третий аргумент XMLHttpRequest.open на false (по умолчанию это правда), скрипт также завершает и отображает текст в теле. Поэтому он ведет себя так, как будто вызов .send не влияет.Javascript XMLHttpRequest send не влияет
Это, вероятно, означает, что у меня есть ошибка в коде или местоположении файла. Код находится в файле HTML, а test.txt находится в одном каталоге. Я использую Firefox 3.6.13, чтобы открыть файл HTML локально (i e, с пунктом меню File/Open File ...).
Это то, что я вижу в предупреждений:
Асинхронный (точка: readyStatus): 7: 0, 8: 0, 1: 1, 6, 9: 1
Синхронный: 7: 0, 8: 0 , 9: 1
Я был бы признателен за любые предложения относительно того, что не так, или как отладить его дальше.
<html>
<head>
<script type="text/javascript">
function test(data)
{
alert(data);
}
function handlerQ()
{
alert("point 1 readyState="+this.readyState);
if(this.readyState == 4 && this.status == 200)
{
// so far so good
alert("point 2");
if(this.responseXML != null && this.responseXML.getElementById('test').firstChild.data)
// success!
{
alert("point 3");
test(this.responseXML.getElementById('test').firstChild.data);
}
else
{
alert("point 4");
test(null);
}
}
else if (this.readyState == 4 && this.status != 200)
{
// fetched the wrong page or network error...
alert("point 5");
test(null);
}
alert("point 6");
}
var clientQ = new XMLHttpRequest();
alert("point 7 readyState="+clientQ.readyState);
clientQ.onreadystatechange = handlerQ;
alert("point 8 readyState="+clientQ.readyState);
clientQ.open("GET", "test.txt",false); // asynchronous
alert("point 9 readyState="+clientQ.readyState);
clientQ.send(null);
alert("point 10 readyState="+clientQ.readyState);
</script>
</head>
<body>
This is the body
</body>
</html>