如何在firefox中保存ajax响应

时间:2011-02-15 09:59:59

标签: javascript ajax firefox greasemonkey

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

我想做的是点击我网页中的内容,然后保存返回给文件的XML。

但是因为我知道,Javascript本身无法访问本地文件,所以也可以将数据发送到另一台服务器,PHP会处理这个问题。

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

编辑:一些解释。

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

还是,帮忙?

5 个答案:

答案 0 :(得分: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这样的库。

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

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

答案 1 :(得分:0)

为什么你不能这样做?

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

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