我们在嵌入式设备的Web服务器上有一个简单的HTML登录表单.由于严重的内存限制,Web服务器是自定义编码的.无论这些限制如何,我们都喜欢Chrome,并且愿意支持它.
所有浏览器都会将HTTP请求发布到我们的登录表单,其中包含预期的"username = myname&password = mypass"字符串,但不包含Chrome.相反,我们从Chrome收到"内容编码gzip deflate"请求.顺便说一句,"所有浏览器",我的意思是这个测试在Internet Explorer版本9 beta,8,7,6; Firefox版本4 beta,3,2; 歌剧10,9; Safari 5,4,3; 和SeaMonkey 2.
参考w3.org的http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html的 "14.2 Accept Charset"部分,我们尝试发送回一个HTTP 406代码,表明该服务器不支持该编码希望Chrome会再次尝试并以标准方式发布预期的字符串.Web服务器返回的406代码清楚地显示在Chrome的"Inspect Element"窗口中,但Chrome似乎将其视为错误代码,并且不再向Web服务器发送请求."登录失败." 我们还尝试了HTTP返回码405和200,结果相同.
有没有办法绕过这种行为,使用客户端JavaScript阻止Chrome发送"内容编码gzip deflate"请求,或者使用服务器端响应,这将很好地解释Chrome我们不做gzip ,只是按常规方式发送给我们?
我们尝试过发布到Google Chrome故障排除论坛,但没有回复.
任何帮助将不胜感激!
此致,伯特