当前位置: 首页 > 面试题库 >

JavaScript:无法从本地主机加载JSON文件

宋景福
2023-03-14
问题内容

我目前正在阅读“最先实现HTML5编程”一书。我想sales.json在自己的机器上加载从Web服务器命名的文件的内容。我为此使用了wampserver。

在文件夹wamp/www/gumball/我把所有相关的.html.js.css文件,也sales.json文件。

我的JavaScript代码非常简单:

window.onload = function() {
    var url = "http://localhost/gumball/sales.json";
    var request = new XMLHttpRequest();
    request.open("GET", url);
    request.onload = function() {
        if (request.status == 200) {
            updateSales(request.responseText);
        }
    };
    request.send(null);
}

function updateSales(responseText) {
    var salesDiv = document.getElementById("sales");
    salesDiv.innerHTML = responseText;
}

这什么也没做!键入链接:http://localhost/gumball/sales.json在我的浏览器中打开正确的文件,因此链接应该正确。即使使用.js本书随附的文件(带有我要制作的应用程序的最终版本),也不会加载任何内容。

使用警报语句进行测试可以告诉我该request.onload事件永远不会发生。对于这种情况,我一无所知。

我还不太了解的一个事实:当我http://localhost/gumball/sales.json:在浏览器中键入时(在链接末尾添加了一个冒号),我收到403
Forbidden错误!为什么会这样?这和我的问题有关吗?


问题答案:

我用Firefox打开HTML文档

您的HTML文件必须与一个URL打开http://,不file://,如果你希望它能够在JavaScript中打开另一个文件,除非第二份文件送达相关CORS标头。

这是由于相同的原产地政策。

因为您有本地WAMP服务器,所以没有问题:只需http://像使用JSON文件一样使用URL 打开文件即可。



 类似资料:
  • 问题内容: 我正在尝试加载本地JSON文件,但无法正常工作。这是我的JavaScript代码(使用jQuery: test.json文件: 什么都没有显示,Firebug告诉我数据未定义。在Firebug中,我可以看到它是好的且有效的,但是当我复制该行时,这很奇怪: 在Firebug的控制台中,它可以正常工作,并且我可以访问数据。 有人有解决办法吗? 问题答案: 是异步的,所以您应该这样做:

  • 问题内容: 我正在尝试加载本地JSON文件,但无法正常工作。这是我的JavaScript代码(使用jQuery): test.json文件: 什么都没有显示,Firebug告诉我这是未定义的。在Firebug中,我可以看到它是好的且有效的,但是当我复制该行时,这很奇怪: 在Firebug的控制台中,它可以正常工作,并且我可以访问数据。 有人有解决方案吗? 问题答案: 是异步的,所以您应该这样做:

  • 我正在尝试加载带有在角度2中。我试过一些东西,我在堆栈上找到的。看起来是这样的: 这是我的在这里我的和从: 在我的组件我和from。然后我有一个名为的函数,在那里我尝试使用加载我的json,并使用打印结果。函数在中调用: 我的本地json文件如下所示: 在我的html模板中,我想循环这样的项目: 我在stack上找到了一个解决方案,但我不知道为什么它不起作用? 编辑相对路径:我的相对路径也有问题,

  • 我正在试验JavaFX控件,我想使用MathJax Javascript库来呈现数学内容。 作为测试,我创建了一个基本的JavaFXFXML项目,在FXML中添加了一个WebView,并更新了控制器代码,如下所示: html文件如下所示: 这正如预期的那样工作,并产生以下结果: 请注意,对于测试,html和JavaScript文件路径都是硬编码到硬盘上的位置,因此下一步是将html打包为与应用程序

  • 我已经创建了一个函数来使用URL从文件中获取文本。该函数使用jQuery的来获取文件。这个函数工作得很好,但这里的问题是是异步的,所以输出的顺序是不可预测的。我尝试将它更改为同步的,但它完全冻结了页面。我尝试过等待它响应,我想我会花点时间,但它没有起作用。 这是我的密码。 此函数输出 这就产生了一个问题,因为我无法文件的内容,因为它还没有加载,因为异步的get函数。那么,有没有办法告诉函数等待返回

  • 试图连接一个简单的JMX监控。托管应用程序和监控工具位于同一台服务器上。当试图连接一个错误 00:30:55610致命http-8080-6 SiteListener:makeJmxConnection:99-java.io。IOException:检索RMIServer存根失败:javax.naming。ServiceUnavailableException[根异常为java.rmi.Conne