为了账号安全,请及时绑定邮箱和手机立即绑定

使用AJAX读取本地文件

使用AJAX读取本地文件

慕斯709654 2019-12-05 15:48:49
我是AJAX的新手,只想确认一下:如果我所有的代码都放在桌面上的文件夹中,并且正在使用AJAX以HTML格式在div中输出文件内容,是否可以通过AJAX或文件应该必须在服务器上?我正在第一次测试AJAX功能,并且由于它在.js文件中显示错误“访问被拒绝”而面临问题
查看完整描述

3 回答

?
小唯快跑啊

TA贡献1863条经验 获得超2个赞

出于安全原因,JavaScript对客户端上文件系统的访问受到限制-请考虑是否要(其他人的)JavaScript读取敏感文档。

即使在进行实验时,最好使用实际的拓扑,也要从服务器上提供服务,而该服务器将在实际系统中从那里提供服务。

设置一个Web服务器(例如Apache)指向您的开发目录确实很容易,因此“服务器”只是您的桌面而已。因此,编辑/测试周期确实很快。


查看完整回答
反对 回复 2019-12-05
?
一只名叫tom的猫

TA贡献1906条经验 获得超2个赞

我希望可以使用Ajax在本地访问文件,我在mozilla firefox上尝试了该文件并运行良好。我创建了2个文本文件,并在同一个文件夹中移动。这是代码。抱歉,有任何错误。


function getXmlHttpRequestObject() {

    if (window.XMLHttpRequest) {

        return new XMLHttpRequest(); //Not IE

    } 

    else if(window.ActiveXObject) {

        return new ActiveXObject("Microsoft.XMLHTTP"); //IE

    } 

    else {

        alert("Your browser doesn't support the XmlHttpRequest object.  Better upgrade to Firefox.");

    }

}           

var receiveReq = getXmlHttpRequestObject();     

function sayHello(fname) {

    if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {

        receiveReq.open("GET", fname, true);

        receiveReq.onreadystatechange = handleSayHello; 

        receiveReq.send(null);

    }           

}

function handleSayHello() {

    if (receiveReq.readyState == 4) {

        document.getElementById('span_result').innerHTML = receiveReq.responseText;

    }

}


Here is the html code

<select name="files" onchange="sayHello(this.value)">

<option value="">Select a file</option>

<option value="file.txt">file.txt</option>

<option value="file2.txt">file2.txt</option>

<option value="ajax.html">Ajax.html</option>

</select><br>

<p>Contents of the file will be displayed below</p>

<div id="span_result"></div>


查看完整回答
反对 回复 2019-12-05
  • 3 回答
  • 0 关注
  • 897 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信