javascript - 使用javascript保存XHR文件

标签 javascript xmlhttprequest greasemonkey

<分区>

我想保存一个 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 || {});

结帐devtools-snippets#console-save

关于javascript - 使用javascript保存XHR文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36132760/

相关文章:

javascript - Ajax IE7 不停地重新加载问题

java - Crypto JS AES-128 密码 - 等效的 Javascript 代码

javascript - fetch、ajax 和 xhr 之间的区别

Javascript:setAttribute ("onmouseover", "...function...")不执行任何操作

javascript - 我可以将跨站点 <img/> 标记的数据作为 blob 获取吗?

javascript - 从 for 循环内的 div 列表中获取变量到 onClick()

javascript - Safari 中的日期解析错误

javascript - XMLHttpRequest.upload.addEventListener ("progress"... 不工作

javascript - 对当前 URL 的 XMLHttpRequest POST 请求的有效 URL 字符串

javascript - Greasemonkey 改变 <span> 颜色