【问题标题】:How to save an ajax response in firefox如何在Firefox中保存ajax响应
【发布时间】:2011-02-15 18:54:35
【问题描述】:

我需要找到一种将 ajax 响应写入文件的方法。响应是 XML 字符串,这对我来说非常好。

我想做的是单击我网页中的某些内容,然后将返回的 XML 保存到文件中。

但由于我知道,Javascript 无法自行访问本地文件,因此也可以将数据发送到另一台服务器,由 PHP 负责处理。

现在我卡住的地方是 javascript 和拦截。我知道,其中一些可以在 Firefox 中使用greaseMonkey 来完成。如果是这样,怎么做?谢谢!

编辑:一些解释。

  • 创建输出的脚本不是我写的。
  • 是的,我可以在 Firebug 中看到数据,看到是一回事。我需要解释数据
  • 这里有很多请求。大约每 2 秒 1 个,因此不能手动复制它们。

还是,帮忙?

【问题讨论】:

    标签: javascript ajax firefox greasemonkey


    【解决方案1】:

    您应该提供更多详细信息,最好是指向目标页面的链接。
    该页面是使用 jQuery 吗?、其他一些库?还是自定义 XMLHttpRequest() 调用?

    无论如何,一个更简单的方法可能会奏效,先试试吧...
    如果将 AJAX 数据写入页面,请将 DOMSubtreeModified 事件侦听器附加到容器元素。比如:

    document.getElementById ("ContainerID").addEventListener ("DOMSubtreeModified", YourFunction, false);
    
    function YourFunction () {
        //--- Get the target node's inner HTML and send it to our server. 
    }
    

    注意DOMSubtreeModified events work fine in FF and Chrome, the two main browsers for Greasemonkey

    如果数据没有写入页面,那么拦截 AJAX 的最佳方式取决于目标页面是否使用 jQuery 之类的库。

    可以在this SO question(和其他)中看到拦截 AJAX 的通用方法。

    正如您所说,一旦您拥有数据,要自动将其写入文件,请使用GM_xmlhttpRequest() 将其发送到您控制的服务器。

    【讨论】:

      【解决方案2】:

      你为什么不能这样呢?

      将 AJAX 响应保存到服务器端的文件中,然后提供指向它的链接,以便下载。

      【讨论】:

        【解决方案3】:

        Firebug 也会有所帮助,您可以非常方便地以几种格式查看每个响应,并最终复制/保存它。

        【讨论】:

          【解决方案4】:

          使用普通(非 AJAX)请求并在响应中添加 Content-Disposition: attachment; filename="foo.xml" 标头。

          【讨论】:

            【解决方案5】:

            如果您只是要保存 XML,为什么要使用 AJAX?只需将 location.href 设置为发送“Content-disposition: attachment”标头并在响应正文中提供 XML 的 PHP 脚本的位置。 AJAX 似乎完全不适合这项工作。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2017-12-07
              • 1970-01-01
              • 2013-06-02
              • 1970-01-01
              • 2014-11-09
              • 2015-12-19
              相关资源
              最近更新 更多