我正在尝试使用JavaScript在我的目录中找到一个JSON类型的文件。但是,当我查看谷歌搜索结果时,他们声称JavaScript无法做到这一点,因为它是一种客户端语言。但是,当我执行以下代码(这不是我想要的,但它的工作原理),它指定了我正在寻找的文件,它的工作原理。我想知道为什么会这样。是因为我使用的是jQuery吗?
为了澄清,我有一个包含我的html文件和JSON文件的目录,而Scene.js文件在一个子目录中。所以,它看起来像:
-labvtk
--- ch4_CameraTypes.html(html文件)
--- noise.json
--- JS
----- webgl的
------- Scene.js
如果是这种情况,你会如何建议我找到一个JSON类型的文件(或许像* .json),而不是明确说明文件名(在这种情况下是noise.json)?
Javascript代码:
var Scene = {
objects : [],
getObject : function(alias){
for(var i=0; i<Scene.objects.length; i++){
if (alias == Scene.objects[i].alias) return Scene.objects[i];
}
return null;
},
loadObject : function(filename) {
var request = new XMLHttpRequest();
console.info('Requesting ' + filename);
request.open("GET",filename);
request.onreadystatechange = function() {
if (request.readyState == 4) {
if(request.status == 404) {
console.info(filename + ' does not exist');
}
else {
var o = JSON.parse(request.responseText);
o.remote = true;
Scene.addObject(o);
}
}
}
request.send();
},
addObject : function(object) {
...
和html文件(里面有一些javascript)
...
<script type='text/javascript' src='js/gui/jquery-1.5.1.min.js'></script>
<script type='text/javascript' src='js/gui/jquery-ui-1.8.13.custom.min.js'></script>
<script type='text/javascript' src='js/webgl/Scene.js'></script>
...
function load(){
Scene.loadObject('noise.json');
}
...
此代码主要来自http://tinyurl.com/merdnch
答案 0 :(得分:2)
您找到的Google条目非常正确:您无法使用Javascript搜索服务器。正如您所演示的那样,如果您已经知道该名称,则可以找到该文件。
在服务器上搜索的唯一方法是在服务器上实现脚本。例如,您可以使用PHP的scandir()
或glob()
函数。还有很多其他方法。
This question可能会给你一些指示。