Eri*_*ert 0 html javascript forms parameters post
我有一个分页的搜索结果页面,目前页码包含在查询字符串中,如下所示:
mysite.com/search/database-search?name=smith&page=10
我不希望用户能够直接在网址中更改页码,他们应该只能通过单击页面按钮来更改页面.所以我需要从查询字符串中删除页面,但仍然将页码作为参数传递,以获得适当的结果页面.
我以为我可以通过使用POST代替GET来实现这一点; 我的页面按钮最初被设置为"href =/search/database-search?name = smith&page = xx"的链接,但我认为如果我使用表单来提交页码,那将会传递页码而不会在查询字符串中显示它.
这是我尝试的代码:
function postToPage(page) {
debugger;
var url = window.location.href;
var newForm = $("<form>", {
"action": url
}).append($("<input>", {
"name": "page",
"value": page,
"type": "hidden"
}));
newForm.submit();
}
<a onclick="postToPage($(this).text());" href="javascript:void(0)" class="page-button">@pageNum</a>
Run Code Online (Sandbox Code Playgroud)
但是,它没有像我预期的那样工作.当我单击一个页面按钮时,URL中的查询字符串被忽略,并且"page"仍然显示在查询字符串中,因此结果与我正在尝试完成的内容相反; 我丢失了我需要的查询参数,"page"是查询字符串中唯一仍然包含的内容.
当我点击页面按钮时,我被带到"/ search/database-search?page = x"
有没有办法将页面用作查询参数而不显示在URL中
编辑:我将我的表单方法更改为"POST",但"页面"变量正在丢失.现在包含当前查询字符串中的参数,但未使用页面值.
看起来你没有将表单的方法设置为POST.
function postToPage(page) {
debugger;
var url = window.location.href;
var newForm = $("<form>", {
"action": url,
"method": "POST" // set form to POST, instead of the default GET
}).append($("<input>", {
"name": "page",
"value": page,
"type": "hidden"
}));
newForm.submit();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
496 次 |
| 最近记录: |