我有以下非常简单的代码,它只读取一个 JSON 文件:
<html>
<head>
<meta charset="ISO-8859-1">
<title>JSON Test</title>
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script>
$(function()
{
alert (1);
$.getJSON('data/sample.json', function(json)
{
alert(2);
});
});
</script>
</head>
<body>
<div id="datadiv">This is the info: </div>
</body>
</html>
我将上述文件加载到 Tomcat 服务器上,并且可以使用以下命令加载文件: http://myserver.com:8080/Html5_Test_1/jsonTest.html
. 上面的代码有效,并且调用了 alert(2)。但是,如果我将用于 getJSON 的路径更改为 /Html5_Test_1/data/sample.json,它将不起作用。
我认为 /Html5_Test_1/data/sample.json 是 data/sample.json 的绝对路径,应该可以工作。事实上,我已经尝试过 /data/sample.json、Html5_Test_1/data/sample.json,但都没有。唯一有效的路径是 data/sample.json。
谁能告诉我出了什么问题?绝对路径 /Html5_Test_1/data/sample.json 在 Java 中肯定可以工作。那么,JavaScript 中绝对路径和相对路径的概念是不是有点不同呢?
请注意,该文件是作为服务器上的公共文件访问的,而不是作为本地文件系统上的文件访问的。