|
楼主 |
发表于 2011-3-14 12:42:41
|
显示全部楼层
回复 86# fxhbear
这个是比较普遍的post分页,只是里面比普通的多了点表单项,但应该不是关键的东西
这个网站可以2中方式翻页,1点下一页,2下拉框的改变,用下拉框的比较方便,我就是用的这种,因此只要了解下拉框改变触发的事件函数,做这类网站就很容易了
下拉框部分的源码:- 转到第<select name="ddlPage" onchange="javascript:setTimeout('__doPostBack(\'ddlPage\',\'\')', 0)" language="javascript" id="ddlPage" style="width:50px;">
- <option selected="selected" value="0">1</option>
- <option value="1">2</option>
- <option value="2">3</option>
- <option value="3">4</option>
- <option value="4">5</option>
- <option value="5">6</option>
- <option value="6">7</option>
- <option value="7">8</option>
- <option value="8">9</option>
复制代码 可见触发setTimeout('__doPostBack(\'ddlPage\',\'\')', 0)",即立即执行__doPostBack(\'ddlPage\',\'\')', 0)事件,
__doPostBack源码:- var theForm = document.forms['form1'];
- if (!theForm) {
- theForm = document.form1;
- }
- function __doPostBack(eventTarget, eventArgument) {
- if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
- theForm.__EVENTTARGET.value = eventTarget;
- theForm.__EVENTARGUMENT.value = eventArgument;
- theForm.submit();
- }
- }
复制代码 可以知道第一个参数是.__EVENTTARGET的值,第2个是EVENTARGUMENT的,_EVENTTARGET代表请求的方式,这里下拉框翻页theForm.__EVENTTARGET.value =ddlPage
theForm.__EVENTARGUMENT.value =“”最后提交name为form1的表单
form1的表单- <form name="form1" method="post" action="posRslt.aspx?id=11" language="javascript" onsubmit="javascript:return WebForm_OnSubmit();"
复制代码 这里在它提交前有个WebForm_OnSubmit()事件发生,
- function WebForm_OnSubmit() {
- null;
- return true;
- }
复制代码 可见什么也没做,我做过类似的网站,有的WebForm_OnSubmit是做一系列的校验,最后也都是 __doPostBack提交表单
这样下拉框翻页的post数据:- __EVENTTARGET=ddlPage&__EVENTARGUMENT=&__LASTFOCUS=&__VIEWSTATE=[POST随机值1]&__EVENTVALIDATION=[POST随机值2]&hfKey=&hfPos=&hfCircle=&txtDw_TextBoxWatermarkExtender_ClientState=&txtPos_TextBoxWatermarkExtender_ClientState=&txtDw=&ddlPage=[分页]
复制代码 post数据可以不用抓包获取,只要把提交表单的具有name属性的表单控件,用&连接,根据情况设置相应的值,提交就可以了,不过有些特殊字符要编码,遇到这种抓包获取,分析源码为主,抓包为验证和快速的整理数据
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?加入会员
x
|