我想将无法使用GET访问的页面另存为Firefox书签。检索页面的唯一方法是发送一些POST数据。
例如,我想为Chronopost包裹追踪页面添加书签,该页面仅允许POST输入包裹号码。
有谁知道Firefox扩展或其他技术可以使我做到这一点?
我想将无法使用GET访问的页面另存为Firefox书签。检索页面的唯一方法是发送一些POST数据。
例如,我想为Chronopost包裹追踪页面添加书签,该页面仅允许POST输入包裹号码。
有谁知道Firefox扩展或其他技术可以使我做到这一点?
Answers:
使用书签。例如,您可以使用位于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
。
如果您只需要创建一次书签并多次使用,则此策略非常有用。但是,如果您需要定期创建新书签,那么创建新书签并不容易。
使用@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添加到书签中。这对于访问例如路由器控制面板非常有用。
感谢这个问题的答案,我找到了这个漂亮的Firefox附加组件:Bookmark POST。它缺少好的文档,但这应该可以帮助您入门:
使用该书签,它可以轻松完成您添加了书签的POST请求的四个简单步骤(无需使用JavaScript):
POSTDATA={YOUR_REQUEST_BODY_HERE}
为书签描述。对我而言,这比弄弄Javascript要容易得多。
具有填写表格和自动上传功能的书签
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参考。(Firefox和IE不会。)
为什么推荐人很重要?在不考虑隐私问题的情况下,某些网站会在POST上检查引荐来源网址,以保护自己免受隐藏的iframe表单帖子发出的恶意请求的侵害。
在这里描述,它的可读性稍强,但需要在某个地方放置HTML文件,用法如下:
file:///C:/getToPost?name1=value1&name2=value2#http://url.com/service
处理本地保存的文件时,不会发送引用。即使在铬中。
如果文件将放置在远程网站上,则将发送引荐来源,并将包含网站主机和原始查询字符串。
我修改了@StriplingWarrior提供的脚本,以接受HAR文件作为参数。可以从Chrome的开发人员工具(Ctrl + Shift + J)中保存HAR文件。
首先打开包含已过帐表格数据的页面,然后右键单击“网络”选项卡上的第一个文档,然后选择“将条目复制为HAR”。然后将内容粘贴到下面的脚本中:
<html><body><script>
function dopost() {
var form = document.createElement("form");
form.setAttribute("method", "post");
form.setAttribute("action", har["request"]["url"]);
var params = har["request"]["postData"]["params"];
for(var e in params) {
var hiddenField = document.createElement("input");
hiddenField.setAttribute("type", "hidden");
hiddenField.setAttribute("name", params[e]["name"]);
hiddenField.setAttribute("value", params[e]["value"]);
form.appendChild(hiddenField);
}
document.body.appendChild(form);
form.submit();
}
window.onload=dopost;
var har=
//-----PASTE HERE------
</script>
</body></html>
将其另存为html文件,它将打开已发布的表单。如果站点使用viewstate或检查引荐来源网址,则此方法无效。
根据我对发布的了解,无法自己记录该数据并重新发送。
我建议获得一个加载项,比默认情况下,Firefox更好地为您填充表单。
Chrome实际上具有内置的非常强大的表单识别和填写功能,但是我敢肯定有一个可以执行相同功能的firefox插件。
试试这个,看起来很有希望: Form Saver Firefox附加组件
根据用户的书签:
这似乎适用于带有Firefox的UPS和搜索栏的关键字(例如“ ups XYZ”,其中XYZ然后进入%s
小书签内的占位符):
javascript:'
<html><body%20onload="document.forms[0].submit()">
<form%20action="https://wwwapps.ups.com/WebTracking/track"%20method="POST">
<input%20name="trackNums"%20value="%s"%20type="hidden">
<input%20name="track.x"%20value="anything"%20type="hidden">
</form>
</body></html>'
(注意这必须是一行)
也可以看看: