仅通过URL提交webform?

时间:2012-11-29 01:38:11

标签: url http-post url-parameters html-form-post form-post

我不确定这是否属于这里,所以不要只是知道如果是这样,我会快速移动它。

无论如何,有一个website有一个搜索页面,当点击搜索按钮时,它不包含网址中的搜索查询。

搜索完成后,页面会重定向到ssearch.asp,但如上所述,查询不存在。

我的问题是,是否有办法仅通过网址提交搜索值。

我想知道是否有办法伪造搜索提交按钮并发布搜索字词 根据表单字段名称通过URL。

输入框的名称是search,所以我尝试了这个网址:http://www.torec.net/ssearch.asp?search=query,但它不起作用,服务器返回:

  

服务器错误。

为了清楚起见,我不是在寻找服务器端解决方案,实际上也不是HTML解决方案,我只是希望能够在我的浏览器地址栏中粘贴一个普通的旧URL并在那里。 / p>

这可能吗?

更新

此链接不起作用:
http://www.torec.net/ssearch.asp?search=dark&page=1

虽然这样做:
http://www.torec.net/ssearch.asp?search=dark&page=2

有没有办法绕过这个?

2 个答案:

答案 0 :(得分:1)

编辑:无法直接创建第一页的链接。但是,您可以通过创建表单轻松地将用户发送到第一页:

<form id="postForm" method="post" action="http://www.example.com/search">
    <input type="text" name="search" value="q">
</form>

然后在用户点击psuedo-link时提交表单:

document.getElementById("postForm").submit();

这也可以通过在地址栏中键入JavaScript代码来完成:

javascript:a=document.createElement("form");a.method="POST";a.action="http://www.torec.net/‌​ssearch.asp?search=dark&page=2";i=document.createElement("input");i.name="search";i.value="q";a.appendChild(inpu‌​t);a.submit();

答案 1 :(得分:1)

有时服务器会混淆GET和POST参数,就像PHP $_REQUEST哈希一样。但是,通常它们是分开的 - 并且在multipart/form-data中期望其参数的服务器可能根本不查看URL。在这种情况下,就像在这里一样,你必须构造一个POST请求。在客户端,您可以通过AJAX或通过构建和发布表单来完成;在服务器端,您可以使用curl或库。你没有说出你想用它做什么(以及你想用它的地方),所以你只是得到了一般答案,我很害怕。

编辑:这是JavaScript半解决方案。你必须已经在某个页面上(即不能在_blank上使用它),我不确定它是否适用于所有浏览器。

javascript:d=document;f=d.createElement("form");h=d.createElement("input");f.setAttribute("method","post");f.setAttribute("enctype","application/x-www-form-urlencoded");f.setAttribute("action","http://www.torec.net/ssearch.asp");h.setAttribute("type","hidden");h.setAttribute("name","search");h.setAttribute("value","query");f.appendChild(h);d.body.appendChild(f);f.submit();