如何使用 POST 数据保存 Firefox 中的书签?

如何使用 POST 数据保存 Firefox 中的书签?

我想将无法使用 GET 访问的页面保存为 Firefox 书签。检索该页面的唯一方法是发送一些 POST 数据。

例如,我想收藏Chronopost 包裹追踪页面,仅允许使用 POST 方式输入包裹号。

有谁知道 Firefox 扩展或其他技术可以让我做到这一点?

答案1

使用书签小工具。例如,您可以使用以下工具:http://userjs.up.seesaa.net/js/bookmarklet.html使用以下代码创建书签:

(function(){
  var post_to_url = function(path, params, method) {
    var openWindow = window.open(path);
    method = method || "post"; 
    var form = openWindow.document.createElement("form");
    form.setAttribute("method", method);
    form.setAttribute("action", path);
    for(var key in params) {
        var hiddenField = document.createElement("input");
        hiddenField.setAttribute("type", "hidden");
        hiddenField.setAttribute("name", key);
        hiddenField.setAttribute("value", params[key]);
        form.appendChild(hiddenField);
    }
    openWindow.document.body.appendChild(form);
    form.submit();
  };
post_to_url(
  'http://www.chronopost.fr/transport-express/livraison-colis/engineName/search/accueil/suivi', 
  {search:'test'});
})()

然后使用生成的书签链接作为您最喜欢的浏览器中的书签。当您单击它时,它将打开一个窗口,使用参数创建一个表单{search:'test'},然后提交该表单。

要更改 URL 和参数,只需调整最后一次调用即可post_to_url

如果您只需要创建一次书签并多次使用,那么这种策略就很好了。但是,如果您需要定期创建新书签,那么这种方法就不太容易了。

答案2

使用@StriplingWarrior 的答案,我稍微改变了脚本,通过在同一窗口上打开书签,使其具有与普通书签相同的行为

(function(){
  var post_to_url = function(path, params, method) {
    method = method || "post"; 
    var form = window.document.createElement("form");
    form.setAttribute("method", method);
    form.setAttribute("action", path);
    for(var key in params) {
        var hiddenField = document.createElement("input");
        hiddenField.setAttribute("type", "hidden");
        hiddenField.setAttribute("name", key);
        hiddenField.setAttribute("value", params[key]);
        form.appendChild(hiddenField);
    }
    window.document.body.appendChild(form);
    form.submit();
  };
post_to_url(
  'http://192.168.0.1/goform/login', 
  {loginPassword:'password',loginUsername:'admin'});
})()

使用工具http://userjs.up.seesaa.net/js/bookmarklet.html您只需复制并粘贴代码,更改 URL 和参数,然后将生成的 bookmmarklet 添加到您的书签即可。这对于访问路由器控制面板等非常有用。

答案3

最简单的方法:

带有填写表格和自动上传功能的书签

javascript:'<html><body onload="document.forms[0].submit()"><form action="http://www.example.com" method="POST"><input name="whatever" value="whatever" type="hidden"></form></body></html>'

缺点:Chromium 会将当前网页 URL 发送为 HTTP referer。(Firefox 和 IE 则不会。)

为什么 referer 很重要? 如果不考虑隐私问题,一些网站会在 POST 时检查 referer,以保护自己免受隐藏 iframe 表单 post 发出的恶意请求。

替代方法:

此处描述,它的可读性更强一些,但是需要 HTML 文件,用法如下:

file:///C:/getToPost?name1=value1&name2=value2#http://url.com/service

当处理本地保存的文件时,referer 将不是发送。即使在 Chromium 中也是如此。
如果文件将被放置在远程网站上,则 referer 将被发送,并且将包含网站主机和原始查询字符串。

答案4

frmget 小书签适用于许多对 http 方法无关的网站:应用书签小工具、提交表单、为结果页面添加书签。

对于需要 POST 的站点,有此扩展,不太方便用户使用。您可以将其与 frmget 结合使用:应用 frmget,提交表单,将页面添加为书签,将 GET 参数复制到描述字段中,并以 为前缀POSTDATA=

相关内容