一个JS文件想使用本地一个JSON文件中的数据
百度了下,发现不能直接去读取这个JSON文件。可以通过JQUERY的一个方法或者new XMLHttpRequest();这样来获取到JSON文件中的内容,不知道还有没有其他更简洁的方法?
https://segmentfault.com/a/1190000038275195
当然,引入本地JSON文件到JS文件中有多种方法,但大部分浏览器出于安全考虑不允许直接读取本地文件。以下是你提到的两种常见方法:
$.ajax()
或 $.getJSON()
方法:$.getJSON('yourfile.json', function(data) { // 在这里使用你的数据 console.log(data);});
或者使用 $.ajax()
:
$.ajax({ url: 'yourfile.json', dataType: 'json', type: 'get', cache: false, success: function(data) { // 在这里使用你的数据 console.log(data); }, error: function(jqXHR, textStatus, errorThrown) { // 处理错误 console.error(textStatus, errorThrown); }});
XMLHttpRequest
或 fetch
:使用 XMLHttpRequest
:
var xhr = new XMLHttpRequest();xhr.open("GET", 'yourfile.json', true);xhr.onreadystatechange = function () { if (xhr.readyState == 4 && xhr.status == 200) // 在这里使用你的数据,需要通过 `xhr.responseText` 获取 JSON 字符串,然后通过 `JSON.parse(xhr.responseText)` 转换为对象 console.log(JSON.parse(xhr.responseText));}xhr.send();
或者使用现代的 fetch
API:
fetch('yourfile.json').then(response => response.json()).then(data => { // 在这里使用你的数据 console.log(data);}).catch(error => console.error(error));
这些都是常用的方法,但需要注意的是,由于浏览器的同源策略和跨域资源共享 (CORS) 限制,你可能无法直接从本地文件系统读取文件。如果你在本地运行这些代码(例如,通过启动一个本地服务器),你可能会遇到跨域问题。在这种情况下,你可能需要将你的 JSON 文件托管在一个服务器上,然后通过该服务器的URL来访问它。
vite如何导入静态.js文件呢?因为我的项目是monorepo架构的,其中有一个common包被其他vue项目所公共引用,然后这个common包里需要动态加载一些.js、.json文件,如何才能在common包放入这些静态文件并直接导入?我试了函数中使用import可以动态导入一些.json文件,但是对于.js文件导入不了。 之前是分别放在引入common的主项目下的public下,然后使用ax
问题内容: 我正在尝试通过创建一个接受文件路径并将文本的每一行转换为char数组的函数来编写一个简单的文本文件阅读器,但是它不起作用。 这是怎么了? 从先前的版本中稍稍更改了代码后,这似乎仍然不起作用,现在给了我一个例外101。 我已经在Firefox上对其进行了测试,并且可以工作,但是在Google Chrome中它却无法工作,并且一直给我一个异常101。如何使它不仅可以在Firefox上而且还
问题内容: 我正在尝试加载本地JSON文件,但无法正常工作。这是我的JavaScript代码(使用jQuery: test.json文件: 什么都没有显示,Firebug告诉我数据未定义。在Firebug中,我可以看到它是好的且有效的,但是当我复制该行时,这很奇怪: 在Firebug的控制台中,它可以正常工作,并且我可以访问数据。 有人有解决办法吗? 问题答案: 是异步的,所以您应该这样做:
问题内容: 假设我有一个如下所示的javascript对象: 我将其字符串化以转换为JSON。如何将此JSON保存到本地文本文件,以便可以在记事本等中打开它。 问题答案: Node.js: 浏览器(webapi):
本文向大家介绍Vue如何引入远程JS文件,包括了Vue如何引入远程JS文件的使用技巧和注意事项,需要的朋友参考一下 问题 最近在使用 Vue 做东西,用到钉钉扫描登录的功能,这里需要引入远程的 js 文件,因为 Vue 的方式跟之前的不太一样,又不想把文件下载到本地应用,找了一下解决的方法,貌似都需要引入第三方的库,最后找到了解决方案,分享之。 思路 一开始的思路是在 Vue 加载完 Dom 之后
import引入本地js文件打包到线上不起作用 本地运行是好的 打包到线上就变成这样了 在本地注释import引入那行代码就是线上没生效这样