以前写ASP总是很懒,喜欢直接用Request("XXX")获取提交数据.并且以为这样是直接获取FORM和QUERYSTRING里的数据.可是有次弄一个页面时.突然发现获取到的数据竟然不是想要的数据.查看了大半天的代码却也发不了哪里有错.怪事.过后.静下来想了一次突然想起自己曾用JS脚本写了COOKIES标记.会不会REQUEST时是获取了这个COOKIES标记??于是查看脚本代码.突然发现Request获取的就是COOKIES里的值.
过后测试了Request也证实是这个原因.Request("XXX")方法获取数据的顺序是:QueryString -> Form -> Cookies.即从前到后.如果前面获取的数据为一个空值(注意不是空字符串).则再获取下一个数据.
测试代码如下:
<%
Response.Cookies("Page") = "Cookies"
Response.Write Request("Page")
%>
<FORM METHOD=POST ACTION="Test.asp?Page=QueryString">
<INPUT TYPE="text" NAME="Page">
<INPUT TYPE="submit">
</FORM>