MozTW 討論區
https://forum.moztw.org/

為什麼Firefox無法透過POST方法將表單的資料傳回我的伺服器?
https://forum.moztw.org/viewtopic.php?f=13&t=18581
1 頁 (共 1 頁)

發表人:  alexkwan [ 2007-04-19, 10:44 ]
文章主題 :  為什麼Firefox無法透過POST方法將表單的資料傳回我的伺服器?

代碼:
<form method=POST action=http://xxxx enctype=text/plain>
<center>歡迎給我發個訊息<br>
<input type=text id=chattext name=chattext>
<input type=submit value=發訊>
</center>
</form>

這是我表單的HTML碼
接收端是一個VB程式,用來接受和回應來自瀏覽器的HTTP請求
在IE我按下「發訊」後,我能在接收端的程式看到來自瀏覽器的HTTP請求,還有透過POST方法傳送過來的表單資料
但在Firefox下,我就只看到瀏覽器傳回HTTP請求,但表單的資料卻沒有被傳回
請問有可能是哪一方面出了問題?

發表人:  kourge [ 2007-04-19, 15:06 ]
文章主題 : 

有沒有可能是 enctype 的問題?

發表人:  alexkwan [ 2007-04-19, 19:49 ]
文章主題 : 

我已經嘗試過把enctype屬性移除掉
可是瀏覽器還是沒有將表單的資料傳回給我...
我剛用了三款瀏覽器測試,並把回傳的資料截下來
http://farm1.static.flickr.com/180/465007950_2531332bf3_o.png
另外這是我設計讓程式回傳給瀏覽器的HTTP回應
代碼:
HTTP/1.1 200 OK
Content-Type: text/html; charset=Big5
Date: Fri, 19 Apr 2007 11:30:33 GMT
Server: Alex
Last-Modified: Fri, 19 Apr 2007 11:30:33 GMT
Accept-Ranges: bytes
Content-Length: 25
Connection: close

問題會不會是來自這裡?

發表人:  kourge [ 2007-04-20, 15:54 ]
文章主題 : 

這個問題可能出在你寫的 VB 程式,不知你的程式是採用甚麼方法去 parse 瀏覽器傳回來的 HTTP response?

因為三個瀏覽器都有傳回 Content-Length: 13,而 chattext=Test 的確是十三個字元長,可見瀏覽器有做回應,只是不知道資料跑到哪裡去了...

另外有趣的是,IE 有送回的 response 有顯示 Google Analytics 的 cookie,而其他並沒有?

要判斷這是瀏覽器的問題,還是 VB 程式的問題,方法有二。
一、不要 parse 傳回來的 HTTP response,直接 dump 出來。
二、極端一點,用 Ethereal 把封包擷取起來,看看資料有沒有被包在裡面,沒有的話就是瀏覽器的問題。

這種 HTML 真是太恐怖了,看了眼睛都快掉出來了:
代碼:
<form method=POST action=http://xxxx enctype=text/plain>
<center>歡迎給我發個訊息<br>
<input type=text id=chattext name=chattext>
<input type=submit value=發訊>
</center>
</form>

改成這樣比較賞心悅目^^:
代碼:
<form method="post" action="http://xxxx" enctype="text/plain">
<center>歡迎給我發個訊息<br />
<input type="text" id="chattext" name="chattext">
<input type="submit" value="發訊">
</center>
</form>

說到 HTML,你指定的 enctype 是 text/plain,可是三個瀏覽器送回來的 response 都是用 application/x-www-form-urlencoded?
把 HTML 的 enctype 改成 application/x-www-form-urlencoded 看看。

發表人:  alexkwan [ 2007-04-21, 04:00 ]
文章主題 : 

我將瀏覽器的回應原汁原味的取出來
終於知道究竟出了什麼問題了
原來IE瀏覽器透過POST方法傳送表單資料時是直接把資料放到POST請求裡
而其他的瀏覽器則會先將POST請求傳送回伺服器,然後再將表單的資料獨立傳回伺服器
謝謝你的幫忙,多虧你給我的意見我才能明白不同瀏覽器使用POST方法傳表單時的不同之處!

1 頁 (共 1 頁) 所有顯示的時間為 UTC + 8 小時
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/