首页 新闻 搜索 专区 学院

ASP 网站的 form 被强制用 Get 传送

0
悬赏园豆:100 [已解决问题] 解决于 2012-03-18 00:37

请教大大们,是否遇过网站被设定成,强制用 Get 而不能用 Post 传送 form 数据的情形?

 

遇到一个古董 ASP 网站,我写了一个测试网页放上去,结果发现它的 form 表单,

即使我写成如下用 post 传送数据,仍会被自动强迫改用 get 传送数据。

 

A.asp 网页内容如下,传到 B.asp 时,会变成用 get 传送 from 数据。

<form name="form1" id="form1" action="B.asp" method="post">
<input name="TheDate" id="TheDate" type="hidden" value="20120315"/>
<input type="submit">
</form>

 

目前小的我,想改回正常情况,代码写 post 就是用 post 传送,而不是被强制用 get 传送。

小的我对 ASP 是外行。

 

请问高手们,这可能是在哪里被设置的?

 

请问 IIS 中是否有类似设置? 抑或 ASP 中有哪种 config 共用设置文件可做此种设定?

甚或网管或网络硬件设备也可如此设置?

 

先感谢各位提供意见与分享 (此帖必会结帖,并给分给与提供任何有用意见的网友)。

Get
问题补充:

目前尚未確定真正原因,及為何 method="post" 改成英文大寫 METHOD="POST" 就能回復正常的原因,
但歸納出網友們提出的幾個可能原因:

(1) 該頁有 Frame 或 Include 了其他頁面 :
http://topic.csdn.net/u/20120315/23/8849db54-a203-4c47-9a6d-1ce312c9e11a.html
* 估计是哪里有设置,判断了method方式,但他匹配的是小写的post,像 if(methodValue=="post")然后改为get方式,所以你改成大写就没事儿了
* 找到全局的asp文件 看看是否在哪设定了 传输方式

(2) 被 JavaScript 改了 :
http://www.blueshop.com.tw/board/show.asp?subcde=BRD20120315232926L3J&fumcde=FUM20041006161839LRJ
http://q.cnblogs.com/q/33094/
* 用JAVASCRIPT寫了程式修改FORM送出的方式
* Server只是接收端,不太能控制 Client 的 Get | Post,能控制 Client 行為,應該只有 JavaScript
* client端用ie看原始檔的method不是很準,因為用javascript還是能控制submit的行為

(2) form 的 action 是到一个 https (SSL) 的网页 :
http://www.blueshop.com.tw/board/FUM200410061525290EW/BRD20120315233002LGU.html
http://bbs.chinaunix.net/thread-580564-1-1.html
我知道为什么了,因为那个form的action是到一个https的网页,我的sniffer抓不到https的包,所以其实根本没看到那个form的提交,后来看到的get其实是又转到http后抓到的封包

(3) HTML dtd、DOCTYPE 的設定 :
http://www.blueshop.com.tw/board/show.asp?subcde=BRD20120315232926L3J&fumcde=FUM20041006161839LRJ
HTML dtd宣告造成大小寫的關係
http://q.cnblogs.com/q/33094/
* 这个页面的DOCTYPE声明
* 根据W3C文件,method属性的預設值就是get,也就是说这里指定的post没有生效。
http://www.w3.org/TR/html401/interact/forms.html#adef-method

(4) 其他原因 :
IIS 聽說可做相關的 post, get 設定 (此點我未證實)。

WizardWu的主页 WizardWu | 小虾三级 | 园豆:1402
提问于:2012-03-15 23:34
< >
分享
最佳答案
1

浏览器会遵循method的设定,所以你这里应该是在提交之前,这个method被JS修改过

收获园豆:40
丁学 | 专家六级 |园豆:18530 | 2012-03-16 09:47

thanks

WizardWu | 园豆:1402 (小虾三级) | 2012-03-17 00:52
其他回答(3)
1

检查先是否防火墙搞的鬼。

收获园豆:10
IT鸟 | 园豆:349 (菜鸟二级) | 2012-03-16 01:35

thanks

支持(0) 反对(0) WizardWu | 园豆:1402 (小虾三级) | 2012-03-17 00:53
1

检查一下页面中javascript吧

收获园豆:20
玉开 | 园豆:8822 (大侠五级) | 2012-03-16 08:43

感谢二位,我会往这些方向找。
也欢迎其他人给相关意见。

支持(0) 反对(0) WizardWu | 园豆:1402 (小虾三级) | 2012-03-16 08:54
1

看一下IIS的ISAPI Filters

收获园豆:30
dudu | 园豆:36426 (高人七级) | 2012-03-16 21:24

感謝大家回應。
該測試頁沒有 Frame 也沒有 Include。今天有同事幫忙測出,
METHOD="POST" 這一行改英文大寫,就變正常(可正常照代碼寫的可 POST 可 GET)

目前原因仍未查明。目前估計是像網友講的,JavaScript 或 config 設置文件的原因。

此帖預計兩日後結帖,有任何意見或相關超連結的網友,歡迎提供。

支持(0) 反对(0) WizardWu | 园豆:1402 (小虾三级) | 2012-03-17 00:51

@WizardWu: 这个页面的DOCTYPE声明用的是什么?

支持(0) 反对(0) dudu | 园豆:36426 (高人七级) | 2012-03-17 11:26

@WizardWu: 根据W3C文档,method属性的缺省值就是get,也就是说这里指定的post没有生效。

支持(0) 反对(0) dudu | 园豆:36426 (高人七级) | 2012-03-17 11:30

@dudu:
感谢您提供此一观点

支持(0) 反对(0) WizardWu | 园豆:1402 (小虾三级) | 2012-03-18 00:42

@dudu:
站长抱歉。因目前不确定是哪种原因造成,JavaScript 或 DOCTYPE 都有可能,因此我先选「丁学」的 JavaScript 当作答案。

支持(0) 反对(0) WizardWu | 园豆:1402 (小虾三级) | 2012-03-18 00:58

http://www.chweng.idv.tw/w3cguide/htmladvanced/declarations.php
http://www.smallni.com/dtd/
按照W3C的标准,我们需要在html的最开始申明文件的DTD类型。如果漏写DTD申明,Firefox仍然会按照标准模式来解析网页,但在IE中就会触发怪异模式。

支持(0) 反对(0) WizardWu | 园豆:1402 (小虾三级) | 2012-03-18 01:02
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册