我不确定这是否属于这里,所以不要只是知道如果是这样,我会快速移动它。
无论如何,有一个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
有没有办法绕过这个?
答案 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(input);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();