0

我正在尝试使用 AJAX 和 XmlHttpRequest 在 web2py 中加载文本文件:

{{extend 'layout.html'}}

<span id="timer"></span>
<script type="text/javascript">
var count=0;
var counter=setInterval(timer, 250);
var reader = new XMLHttpRequest();

function loadFile() {
    reader = new XMLHttpRequest();
    reader.open('get', 'wnewfile.txt', true); 
    reader.onreadystatechange = displayContents;
    reader.send(null);
}

function displayContents() {
    if(reader.readyState==4 && reader.status==200) {
        document.getElementById("timer").innerHTML=  reader.responseText ;
    } else {
        document.getElementById("timer").innerHTML= "status:" + reader.status  + " Ready State: " + reader.readyState;

    }
}


function timer()
{
  loadFile();

}

</script>

{{=BEAUTIFY(response._vars)}}

其结果始终是 status:400(错误请求)和 readyState:4(错误请求)。

我是 python、AJAX 和 js 的新手,我想知道在 web2py 中使用 XmlHttpRequest 是否有任何问题,以及我无法访问文件的原因是什么......

有什么想法吗?谢谢

4

1 回答 1

1

您传递到.open()的 URL 是一个相对 URL,因此它将被添加到当前页面的 URL 中,这很可能是不正确的。如果该文件位于 web2py 应用程序的静态文件夹中,则需要按如下方式指定 URL:

reader.open('get', '{{=URL('static', 'wnewfile.txt')}}', true);

无论如何,除非您有充分的理由不这样做,否则您最好使用 web2pyajax()函数或 jQuery Ajax 函数之一(.ajax.load)。

于 2013-11-13T14:15:10.750 回答