Javascript 如何将JSON保存到我的计算机上的本地文件中?没有点头?

Javascript 如何将JSON保存到我的计算机上的本地文件中?没有点头?,javascript,json,abstract,Javascript,Json,Abstract,我正在使用抽象的IP地理定位API $.getJSON("https://ipgeolocation.abstractapi.com/v1/?api_key=YOUR_UNIQUE_API_KEY", function(data) { console.log(data.ip_address); console.log(data.country); }) 编辑:基本上我想创建一个文本文件,将所有的访客IP地址只保存到我的计算机上,因为我有源文

我正在使用抽象的IP地理定位API

$.getJSON("https://ipgeolocation.abstractapi.com/v1/?api_key=YOUR_UNIQUE_API_KEY", function(data) {
       console.log(data.ip_address);
       console.log(data.country);
   })
编辑:基本上我想创建一个文本文件,将所有的访客IP地址只保存到我的计算机上,因为我有源文件


如何将每个用户的data.ip_地址和data.country仅保存到本地计算机上,而不让用户单击并下载任何内容?是否将JSON保存到一个文件中?该JSON请求位于我的Github页面的唯一HTML文件中。我只需要这个快速,静态项目的最简单的解决方案。我尝试过使用require(fs),但我一直收到一个错误,并且读到我不能真正使用nodeJS来完成我正在做的事情。

Javascript没有访问本地文件系统的权限。您需要一个Web服务器和服务器端语言,以便能够将某些内容保存到服务器的文件系统中

我能想到的唯一解决方案是强制浏览器创建一个文件并将其作为下载文件呈现。比如:

var text = data.ip_address;
    text += '\n';
    text += data.country;

var filename = 'myData.txt';

var blob = new Blob([text], {type: 'text/csv'});
if(window.navigator.msSaveOrOpenBlob) {
    window.navigator.msSaveBlob(blob, filename);
} else {
    var elem = window.document.createElement('a');
    elem.href = window.URL.createObjectURL(blob);
    elem.download = filename;        
    document.body.appendChild(elem);
    elem.click();        
    document.body.removeChild(elem);
}

这是一个令人讨厌的黑客行为,但您可以运行它(在您的站点或控制台上):

const win=window.open(“,”Title“,”toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizeable=yes,width=780,height=200,top=“+(screen.height-400)+”,left=“+(screen.width-840));
win.document.body.innerHTML=JSON.stringify(数据);
//那么你的情况呢
$.getJSON(“https://ipgeolocation.abstractapi.com/v1/?api_key=YOUR_UNIQUE_API_KEY,函数(数据){
const win=window.open(“,”Title“,”toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizeable=yes,width=780,height=200,top=“+(screen.height-400)+”,left=“+(screen.width-840));
win.document.body.innerHTML=JSON.stringify(数据);
})
然后将打开的窗口作为json文件保存到本地计算机

GitHub页面不支持服务器端语言,如PHP、Ruby或Python

--从,因此无法写入文件。GitHub页面提供静态内容,没有任何后端。

即使是这样,从隐私的角度来看,将用户的位置和IP收集到GitHub repo中可能不是最好的主意。

在哪里运行此代码,以至于您无法访问NodeJS或类似的框架,但用户将访问此页面?JavaScript没有与计算机文件系统交互的本机方式;'fs’是NodeJS提供的。这是否回答了您的问题?我在GitHub页面上运行它,它可以为我托管它,我的用户名是URL@也许我的问题用错了词。我基本上想要一个所有访问者IP地址的文件保存到我的计算机上。我不希望用户能够访问/下载JSON@如果我没有弄错的话,tevemadarWell GitHub页面只允许您运行客户端代码。所以你不能让它自动将数据保存到你的电脑上。你需要一种服务器端语言。为了每个人的安全,客户端语言不能访问文件系统。