最近在开发过程中,遇到了一个问题:本地json文件无法用Ajax获取数据。
首先,我尝试使用以下代码:
$.ajax({ url: "data.json",dataType: "json",success: function(data) { console.log(data); },error: function(xhr,textStatus,errorThrown) { console.log(xhr.responseText); } });
然而,无论我如何尝试,数据似乎都无法从本地JSON文件中获取。
经过搜索和讨论,我发现这是由于本地的JSON文件无法通过Ajax和XMLHttpRequest读取。这是由于浏览器的安全策略所限制造成的。但是,这个问题可以通过使用服务器来解决。
因此,我在本地搭建了一个轻量级的服务器并将json文件放在该服务器上。以下是我用于创建服务器的代码:
const express = require('express'); const app = express(); const port = 3000; app.use(express.static('public')); app.listen(port,() => console.log(`Server running on port ${port}...`));
我将json文件放在public文件夹中,并通过访问"http://localhost:3000/data.json"来获取它。最终,我重新编写了Ajax请求代码,如下所示:
$.ajax({ url: "http://localhost:3000/data.json",errorThrown) { console.log(xhr.responseText); } });
总结而言,本地JSON文件无法通过Ajax获取的问题,是由于浏览器的安全策略所限制造成的。为解决这个问题,可以使用服务器将JSON文件放在服务器上,并通过服务器来获取JSON数据。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。