使用javascript保存XHR文件

Using javascript to save XHR file

本文关键字:文件 XHR 保存 javascript 使用      更新时间:2023-09-26

我想保存一个 JSON 文件,该文件是在带有 POST 请求的登录后页面上请求的。由于没有可用的 API,我想下载使用 Greasemonkey 将页面加载为 JSON 文件时调用的脚本的响应。

该页面类似于 domain.com/map,在加载过程中调用 domain.com/map/script:<script type="text/javascript" charset="utf-8"> function open() {$.ajax{{ url: "/script", type: "POST", dataType: "json",), [...] }); }; function functionname(value){ [...] }; open(); 。domain.com/map/script 的响应是我想保存的实际 JSON 响应(本地甚至更好地使用 FTP)。

下面的完整演示代码:

(function (fetch, console) {
    fetch('https://api.stackexchange.com/2.2/questions/36132760?site=stackoverflow')
        .then(res => res.json())
        .then(data => console.save(data));
    console.save = function (data, filename) {
            if (!data) {
                console.error('Console.save: No data')
                return;
            }
            if (!filename) filename = 'console.json'
            if (typeof data === "object") {
                data = JSON.stringify(data, undefined, 4);
            }
            var blob = new Blob([data], {type: 'text/json'}),
                e    = document.createEvent('MouseEvents'),
                a    = document.createElement('a');
            a.download = filename;
            a.href = window.URL.createObjectURL(blob);
            a.dataset.downloadurl =  ['text/json', a.download, a.href].join(':');
            e.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
            a.dispatchEvent(e);
    };
}).call(this, window.fetch, window.console || {});

结帐开发工具-片段#控制台保存