Posted on 2006-11-12 22:58
wxb_nudt 阅读(1829)
评论(3) 编辑 收藏
最近帮朋友做一个简单网站,同时学习了一下
ASP
技术。在使用
Macromedia
和
IIS5.1
时候发现了一个很容易让人迷惑的问题。
配置如下:
Macromedia 2004 MX
IIS 5.1
Windows XP SP2
在
Macromedia
里面建立了一个站点可以直接将编辑的
ASP
或者
HTML
文件上传到本地的
IIS
目录下面(默认为
C:\Inetpub\wwwroot
),这样就可以直接点击一个按钮实现
ASP
文件在
IIS
下面的效果御览。
Macromedia 2004 MX
在设置站点是默认的
http
前缀是
http:://localhost
。因此我的
ASP
文件出现在
IE
里面的路径是
http://localhost/wxbsite/getName.asp
。一切看起来都是那么美好。
但是在运行下面一个简单例子是问题出现了:
文件名:
getName.asp
说明:从文本框读入一个字符串,在点击
submit
按钮时将这个字符串显示在按钮下方
源代码:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>getName</title>
</head>
<body>
<%
name = request.Form("txtName")
%>
<form method="POST" action="getName.asp">
<input type="text" name="txtName" size="20" value="<%=name%>"><p></p>
<input type="submit" value="submit">
</form>
<%
response.Write name
%>
</body>
</html>
问题如下:无论如何试验,均发现
request.Form("txtName")
语句不能得到有效值,而只是得到
null
。
修改
IIS
配置,无效;
修改
ASP
文件,将其拆分为
html
和
asp
,无效;
在
google
上面折腾好久,也发现了有人出现了类似的问题,但是没有答案。
最后发现,都是
localhost
惹的祸。将
http
头更换为
http://127.0.0.1
,则一切都正常了。郁闷啊,花费了一个小时的时间,得出了这个隐藏的
localhost
与
127.0.0.1
的差别。奇怪的是,使用
response
对象输出语言却是正常的。看来
localhost
只影响表单对象数据的传输!
记之!