由於最近在開發簡體中文的網站,發生一些以前從沒遇過的事情(Firefox並沒有這樣的問題,依然是萬惡的淵藪IE出的問題。),例如這個-1072896658錯誤,不過其實上網找就會有一堆解答,如果XMLHttpRequest對象請求的文檔未指定正确的utf-8編碼,就會出現這個錯誤。解決方法其實很簡單,server端的程式必須明確指定header的charset,注意charset= utf-8 而不能寫成charset= utf8,請參考這篇。
於是我將header指定charset為utf-8之後,果然不會出現這樣的問題,但在server端接收到的data卻是亂碼,於是我再去檢查了一下jquery的AJAX option,contentType預設為”application/x-www-form-urlencoded”,該不會這也要指定編碼吧?於是我把他再加上了charset=utf-8,也就是
[sourcecode language=”javascript”]
$.ajax({
type: “POST”,
url: _SUBMIT_URL,
data: postData,
contentType:’application/x-www-form-urlencoded;charset=utf-8’,
complete: submitCallback
});
[/sourcecode]
沒想到竟然可以了,不過我並沒有深入探究這是什麼原因,先把這個案子搞定之後再說吧!不過編碼問題真是很麻煩又累人的事情。沒遇過這樣的問題真的很難debug。