記一次錯誤“net::ERR_INCOMPLETE_CHUNKED_ENCODING”
阿新 • • 發佈:2019-01-09
前端找我: qa環境(老)能用 dev環境(新)不能用。好像是個跨域問題.
具體表現為傳送了個 option後,不繼續發post了沒多想,看了下程式碼。感覺不應該是個跨域問題。不過還是改成了allow *
改了後沒用
感覺是程式碼問題,因為老環境OK,新環境不行。然而同樣程式碼的另一個新環境又可用???
想到可能是前端問題,於是看console,發現報錯:
failed to load resource net::err_incomplete_chunked_encoding chrome
百度, 各種千奇百怪的答案,nginx磁碟滿了、chrome的自身問題、tomcat版本問題…
還是覺得應該是後端問題,認定應該是新老環境之間web的一些配置變化導致。
compare兩個分支的程式碼。發現web.xml新加了filter。於是去掉filter
問題解決
追蹤問題.本地除錯,發現是之間已經發現的坑.就是字符集編碼的問題
1.new String(charArrayWriter.toCharArray()).getBytes();
//這句程式碼如果byte沒有指定編碼,而且是中文,則會報錯String index out of range -1.
2.Map respMap = JSON.parseObject(responseCopier.getBytes(), Map .class);
改:
public byte[] getBytes() {
try {
return new String(charArrayWriter.toCharArray()).getBytes("UTF-8");
} catch (UnsupportedEncodingException e) {
return new String(charArrayWriter.toCharArray()).getBytes();
}
}
問題解決.
總結
遇到過N多次小問題,各種迷,但最後99%基本上都是後端埋的BUG。
因此遇到BUG沒第一時間找到問題,還是要多從後端程式碼定位!