无法让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一百万,因为他指出我忘了调用这个功能! :)修正了!谢谢大家!
答案 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是异步的,因此在填充变量之前可能需要一些时间(取决于您/您的服务器的速度)