![](/img/trans.png)
[英]XMLHttpRequest() on a local .txt file is returning an empty responseText in all browsers except Firefox
[英]XMLHttpRequest responseText empty when opening a local txt file
這是“使用js的DOM腳本進行Web設計文檔對象模型”示例的一個示例:ajax.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Ajax</title>
</head>
<body>
<div id="new"></div>
<script src="scripts\addLoadEvent.js"></script>
<script src="scripts\getHTTPObject.js"></script>
<script src="scripts\getNewContent.js"></script>
</body>
</html>
addLoadEvent.js
function addLoadEvent(func)
{
var oldonload = window.onload;
if(typeof window.onload != 'function')
{
window.onload = func;
}
else{
window.onload = function(){
oldonload();
func();
}
}
}
getHttpObject,JS
function getHTTPObject()
{
if(typeof XMLHttpRequest == 'undefined')
XMLHttpRequest = function(){
try{return new ActiveXObject('Msxml2.XMLHTTP.6.0');}
catch (e) {}
try{return new ActiveXObject('Msxml2.XMLHTTP.3.0');}
catch (e) {}
try{return new ActiveXObject('Msxml2.XMLHTTP');}
catch (e) {}
return false;
}
return new XMLHttpRequest();
}
getNewContent.js
function getNewContent()
{
var request = getHTTPObject();
if(request){
request.open("GET","example.txt",true);
request.onreadystatechange = function(){
if(request.readyState == 4){
if(request.status == 0){
var para = document.createElement("p");
var txt = document.createTextNode(request.responseText);
para.appendChild(txt);
document.getElementById('new').appendChild(para);
}
}
};
request.send(null);
}else{
alert('sorry,your browser doesn\'t support XMLHTTPRequest');
}
}
addLoadEvent(getNewContent);
example.txt
和ajax.html
在同一目錄中,而request.status=0
, responseText
始終為空。我的代碼有什么問題?
我在使用chrome或IE時遇到了同樣的問題。 但是,當我切換到Firefox時,一切都非常好! 有人說這是因為Ajax基於HTTP協議。 IE或chrome在HTTP和FILE協議之間會有錯誤。 Firefox可以兼容(細節對我來說太復雜了),所以我只建議使用Firefox〜也請檢查腳本中是否沒有拼寫錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.