客户端怎么提交 整个html页面?
分析:
1>我们知道b/s模式,也知道http协议。服务端想要获取客户端的数据,客户端就
必须提交给它,服务器才能获取到。
2>怎么获取当前整个html页面呢?对,我们可以给<html id="htmlid"></html>加一
个id,使用jquery的html()方法。
e.g:
$("#htmlid").html();
这样我们获取的只是<html>标签内的内容,<html>本身标签和html文档定义的标签( <!
DOCTYPE html> )没有获取到。不过这个容易,我们可以在后台自己手动加上!!
3>html页面内容我们获取到了,就可以提交给服务器了啊。这样就结束了吗?
告诉你,答案是没有。我们想一下html内容就是一个页面,内容很大,我们该怎么
提交?当然不能使用get方式提交,因为get最大提交字符数只有2083个字符!故我们使用post
提交。
4>post表单提交
post提交只能用于表单,故我们还要造一个表单,表单内添加一个带有name的
<input>标签(用于保存获取到的html页面内容)。
这里需要注意保存的是html代码,input value="" 当html代码放在value里时,整个
html页面都将会出现格式错误。故html代码提交到服务器时我们可以利用js的
encodeURIComponent()方法进行编码。当然,相应服务器端要想获得html代码就必须解码
,利用C#的HttpUtility.UrlDecode()解码。
5>这样整个客户端提交html代码及服务端获取html代码的流程就讲完了。
注意点总结:
可以给html里的标签标识id,用$("#id").html()的方法获取到html页面内容;因为html
页面内容很多,故我们必须用post提交;html代码含有各种特殊字符,故我们提交服务器前使
用encodeURIComponent()编码;服务端使用HttpUtility.UrlDecode()解码获得客户端提交的
html代码。