3

无法让 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 一百万,正如他指出的那样,我忘了调用该函数!:) 固定的!感谢其他所有人!

4

2 回答 2

2

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

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

服务器可以限制对您的文件系统的访问,并且您应该尝试使用相对路径text.txt或绝对路径/text.txt,以便即使在生产环境中部署它时路径也能正常工作。

编辑: 因此,如果这没有帮助,请确保您确实调用了该loadXMLDoc()函数。还要检查你所做的一切都是AJAX 结束之后!我的意思是你在 if - 当 AJAX 完成时做任务,但你也应该初始化你的选框!之后!文本已加载。如果您在未定义之前执行此操作

于 2013-03-21T12:26:21.537 回答
0

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

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

如果您无法使用浏览器访问它,那么您将不得不配置您的服务器以允许读取此文件,从未尝试过 IIS,所以我无法帮助您。

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

于 2013-03-21T12:38:56.867 回答