用XMLHTTP实现远程POST上传本地图片
我们一般是用form表单在提交,那如果用程序自动提交呢
这儿提供一个类,代码见内页,使用方法如下:
Set UploadData = New XMLUpload UploadData.Charset = "GB2312" UploadData.AddForm "domain", "test.com" '创建普通的文本参数 UploadData.AddForm "act", "do" '同样 UploadData.AddFile "mypic", "0.jpg", "image/pjpg", "C:\1.jpg" '创建一个文件域,名字为mypic,路径为c:\1.jpg,其他可随意 Call UploadData.Upload("/do.asp") '提交到哪儿 Set UploadData = Nothing
jquery表单提交函数
//这是我自己写的一个表单post信息组成函数,支持一下原创撒
function jquerypoststr(_thisfrom){ var poststr=""; var tmpcval=""; _thisfrom.find("input[type='hidden'][name],input[type=password][name],input[type=text][name],textarea[name],input[type=radio][name]:checked,select[name]").each( function(index){ poststr += "&"+this.name+"="+escape( $(this).val() ).replace(/\+/ig,"%2B"); }); _thisfrom.find("input[type=checkbox][name]").each( function(index){ tmpcval=""; if ( $(this).attr("checked") ) { tmpcval = escape(this.value).replace(/\+/ig,"%2B"); poststr += "&"+this.name+"="+tmpcval; } }); return poststr.substring(1); }
关于xmlhttp方式模拟登录问题
今天没事又弄了下远程调用网页文件。我用的是asp来模拟登录,然后拉取需要的信息。
后台登录一直不成功,普通用户后台是可以成功的,最后才知道原因,写这里分享下以免走弯路。
如果服务端用了Cookies验证,那直接POST登录信息,然后再调其他页就可以。
而超管后台往往用的是Session验证,所以直接POST登录信息后,虽然能返回正确,但接着去拉取其他页面会发生错误,原因是拉取时没有设置Cookie头。我们应该拉取一下后台,用 ajaxHttp.getResponseHeader("Set-Cookie") 得到COOKIES值,然后POST时也将此信息写进去,以后在拉取其他页时也要写。 ajaxHttp.SetRequestHeader "Cookie",reCookie
服务器上只要session不掉,你以后直接发送这个cookies就可以保持连接,而不必POST登录信息了。
asp的cookies形式如:ASPSESSIONIDSACCQQDR=DLHNPNPCJFJNGJIFHCMNHGCL 但.net的就不同了哦。
页码 1 / 11