Javascript:使用AJAX读取文本文件

Javascript:使用AJAX读取文本文件,javascript,html,ajax,marquee,Javascript,Html,Ajax,Marquee,无法让AJAX工作!我有一个网站上的字幕,让它工作!但是我想让它在文本文件中找到字幕的文本,我想让它读取文本文件中的文本(一行),并将其分配给名为content的变量,该变量是脚本标记中的全局变量 当我运行网站(本地IIS)时,字幕文本是:“未定义”(不带引号) 为什么它不将文本分配给变量content var content function loadXMLDoc() { var textfile; if (window.XMLH

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

当我运行网站(本地IIS)时,字幕文本是:“未定义”(不带引号)

为什么它不将文本分配给变量
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,正如他指出的,我忘记调用函数了!:)固定的!谢谢大家

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

将其放置在IIS的www目录中,并按如下方式说明路径:
localhost/text.txt

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

编辑:
因此,如果这没有帮助,请确保确实调用了
loadXMLDoc()
函数。还要检查您所做的一切都是在AJAX结束后进行的!我的意思是,当AJAX完成时,您可以在if中完成任务,但是您还应该初始化您的字幕!之后文本已加载。如果在未定义之前执行此操作,请先尝试使用相对或绝对路径

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

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


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

Hiya!谢谢@kuncajs!正如你告诉我的那样,不幸的是,字幕框中仍然有“未定义”的内容。我还尝试删除“localhost/”并只保留文本文件名。该文本文件位于www.OK的根文件夹中,它对我有效:我已获得
textfile.open(“GET”,“text.txt”,true)文件text.txt与我的JS html文件位于同一目录中。你确定你真的在代码中的某个地方调用了
loadXMLDoc()
——我的意思是执行这个函数吗?啊!你说得对@kuncajs我忘了调用函数了!现在开始工作了,非常感谢!!!谢谢@BLSully的格式化