Javascript:使用AJAX读取文本文件

时间:2013-03-21 12:22:07

标签: javascript html ajax marquee

无法让AJAX工作!我在网站上有一个选框,让它工作!但我想让它在文本文件中找到选框的文本,我希望它能够读取文本文件中的文本(这是一行)并将其分配给名为content的变量,这是一个脚本标记中的全局变量。

当我运行网站(本地IIS)时,选框文本为:“undefined”(不带引号)。

为什么不将文本分配给变量content

    var content

    function loadXMLDoc()
    {   
        var textfile;
        if (window.XMLHttpRequest)
        { 
            textfile = new XMLHttpRequest(); 
        }
        textfile.onreadystatechange = function ()
        {   
            if (textfile.readyState == 4 && textfile.status == 200)
            { 
                content = textfile.responseText; 
            }
        }
        textfile.open("GET", "C:\Users\Fares\Dropbox\Sync\College\Computing\DeltaOne\MarqueeText.txt", true);
        textfile.send();
    }

编辑:感谢@kuncajs一百万,因为他指出我忘了调用这个功能! :)修正了!谢谢大家!

2 个答案:

答案 0 :(得分:2)

请勿使用以下本地路径: C:\Users\Fares\Dropbox\Sync\College\Computing\DeltaOne\MarqueeText.txt

将其放在IIS的www目录中并说明路径: localhost/text.txt

服务器可以限制对文件系统的访问,您还应该尝试相对路径,如text.txt或绝对路径/text.txt,这样即使在生产环境中部署路径,路径仍然有效。

修改 因此,如果这没有帮助,那么请确保您真正调用loadXMLDoc()函数。在 AJAX结束后,检查你所做的一切是!我的意思是你在if中做任务 - 当AJAX完成但你也应该初始化你的选框!之后!文本已加载。如果你在未定义之前这样做

答案 1 :(得分:0)

首先尝试使用相对路径或绝对路径。

如果不起作用,请检查使用浏览器时是否可以访问该文件(假设您的网站位于mysite.com/index.html,请尝试打开mysite.com/text.txt

如果您无法使用浏览器访问它,则必须配置服务器以允许读取此文件,从不尝试过IIS,因此我无法帮助您。

此外,由于您要求XHR是异步的,因此在填充变量之前可能需要一些时间(取决于您/您的服务器的速度)