我想使用AJAX在没有扩展名的服务器中获取文件的内容。代码的简单演示如下:
<html>
<head>
<script>
function read_my_file(){
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById ("myDiv").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","MYFILE",true);// MYFILE HAS NO EXTENSION
xmlhttp.send();
}
</script>
</head>
<body>
<h2>THIS FETCHES DATA FROM SERVER IF WORKS!!!!!!</h2>
<button type="button" onclick="read_my_file()">Request data</button>
<div id="myDiv"></div>
</body>
</html>
由于文件MYFILE没有扩展名,我认为它被解释为文件夹名称,我收到404错误。我该如何解决这个问题?
答案 0 :(得分:1)
如果克里斯的答案不起作用,您还可以尝试指定您的页面应使用的mime类型:
xmlHttp.overrideMimeType("application/xml");
或
xmlHttp.setRequestHeader("Accept", "text/html");
并简单地将“application / xml”或“text / html”替换为您需要的类型。
答案 1 :(得分:0)
如果要直接加载文件,它必须位于Web服务器的文档根目录中。也就是说,如果文档根目录是/var/www/example.com/public
,那么您可以访问以下文件:
/var/www/example.com/public/json/myfile.json
xmlhttp.open("GET","json/myfile.json",true);
xmlhttp.open("GET","http://www.example.com/json/myfile.json",true);
但是,如果文件位于/var/files/json/myfile.json
,则无法访问它,因为它位于文档根目录之外!您必须使用服务器端语言(例如PHP)来读取文件。