最近幫朋友做一個簡單網(wǎng)站,同時學(xué)習(xí)了一下 ASP 技術(shù)。在使用 Macromedia 和 IIS5.1 時候發(fā)現(xiàn)了一個很容易讓人迷惑的問題。
配置如下:
Macromedia 2004 MX
IIS 5.1
Windows XP SP2
在 Macromedia 里面建立了一個站點可以直接將編輯的 ASP 或者 HTML 文件上傳到本地的 IIS 目錄下面(默認(rèn)為 C:\Inetpub\wwwroot ),這樣就可以直接點擊一個按鈕實現(xiàn) ASP 文件在 IIS 下面的效果御覽。 Macromedia 2004 MX 在設(shè)置站點是默認(rèn)的 http 前綴是 http:://localhost 。因此我的 ASP 文件出現(xiàn)在 IE 里面的路徑是 http://localhost/wxbsite/getName.asp 。一切看起來都是那么美好。
但是在運行下面一個簡單例子是問題出現(xiàn)了:
文件名: 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>
問題如下:無論如何試驗,均發(fā)現(xiàn) request.Form("txtName") 語句不能得到有效值,而只是得到 null 。
修改 IIS 配置,無效;
修改 ASP 文件,將其拆分為 html 和 asp ,無效;
在 google 上面折騰好久,也發(fā)現(xiàn)了有人出現(xiàn)了類似的問題,但是沒有答案。
最后發(fā)現(xiàn),都是 localhost 惹的禍。將 http 頭更換為 http://127.0.0.1 ,則一切都正常了。郁悶啊,花費了一個小時的時間,得出了這個隱藏的 localhost 與 127.0.0.1 的差別。奇怪的是,使用 response 對象輸出語言卻是正常的。看來 localhost 只影響表單對象數(shù)據(jù)的傳輸!
記之!