4

我不确定这是否属于这里,所以不要投反对票,只要让我知道是否是这样,我会迅速继续。

无论如何,有一个网站有一个搜索页面,当点击搜索按钮时,它不会在 URL 中包含搜索查询。

搜索某些内容后,页面被重定向到ssearch.asp,但如上所述,查询不存在。

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

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

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

服务器错误。

需要明确的是,我不是在寻找服务器端解决方案,实际上也不是在寻找 HTML 解决方案,我只是希望能够在我的浏览器地址栏中粘贴一个普通的旧 URL 并在那里。

这可能吗?

更新

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

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

有什么办法绕过这个吗?

4

2 回答 2

1

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

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

然后在用户单击伪链接时提交表单:

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();

于 2012-11-29T01:41:44.020 回答
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();
于 2012-11-29T01:46:57.027 回答