使用 javascript 从 localhost 读取 json 文件

Posted

技术标签:

【中文标题】使用 javascript 从 localhost 读取 json 文件【英文标题】:Read json file from localhost with javascript 【发布时间】:2013-03-20 03:21:53 【问题描述】:

我需要从本地主机读取.json 文件,但它不起作用!

文件内容如下:

[
 "source":"tw1", 
  "text":"fubar", 

 "source":"tw2", 
  "text":"foo"
]

我使用以下命令设置了 localhost:python -m http.server 8888 &,这里发布了D3.js。

我编写了以下 javascript 代码:

<script type="text/javascript" src="lib/jquery-1.9.1.js"></script>
   <script>
    $(document).ready(
        $.getJSON("http://localhost/test.json", function(data)
            document.write(data);

    );
    </script>  
 

【问题讨论】:

请参考***.com/questions/7346563/loading-local-json-file.. 可能对你有帮助 我同意@Amberlamps。请编辑问题并显示您遇到的错误。 对不起,我没有收到任何错误,我什么也没收到,这就是问题之一 【参考方案1】:

如果您在端口8888 上打开您的服务器,那么您必须在该端口上请求它:

$.getJSON("http://localhost:8888/test.json", function(data)

但要注意服务器必须设置correct CORS headers才能传递cross domain restrictions。

第三个问题是您的代码无法编译:您缺少);。压痕不对称使它很明显:

$(document).ready(
    $.getJSON("http://localhost:8888/test.json", function(data)
        document.write(data);
    ); // <=== was missing
);

第四个问题是你不想在页面加载后使用document.write。您必须使用 DOM 操作方法编写,例如 $(document.body).append($('&lt;pre&gt;'+data+'&lt;/pre&gt;'));

【讨论】:

感谢您的快速回复,); 哪里不见了,这在&lt;/script&gt; 标签上方吗? @dot 我编辑了。您应该尝试习惯于在代码中看到对称性。这就是我发现最明显错误的方式。 如何在这个简单的服务器上设置正确的 CORS 标头,问这个愚蠢的问题!【参考方案2】:

我认为问题在于您正在尝试访问计算机中的 json 文件,将 json 文件上传到在线服务器并访问该服务器,而不是您的计算机。

【讨论】:

以上是关于使用 javascript 从 localhost 读取 json 文件的主要内容,如果未能解决你的问题,请参考以下文章

Javascript 不能在 localhost 上运行,但它可以在 Live 站点上运行

无法使用 xampp 在 localhost 中加载 javascript 文件

如何从 javascript 中的 URL 获取值

进行 javaScript 调用以使用在 localhost 上运行的 REST API

如何使用 Html css Javascript 将 localhost 网站项目转换为 Android Web 应用程序

JavaScript GetUserMedia 在没有 HTTPS 的情况下使用带有 localhost 的 Chrome