jquery $.post亂碼的解決方法:1、修改代碼為「contentType: "application/x-www-form-urlencoded; charset=utf-8"0」;2、修改代碼「$. ajax({...})」即可。
本教學操作環境:windows7系統、jquery1.10.0版本,此方法適用於所有品牌電腦。
推薦教學:jquery影片教學
jquery $.post亂碼解決方法:
$.ajaxSetup({ contentType: "application/x-www-form-urlencoded; charset=utf-8" }); $.post("test.php", { name: "i5a6", time: "2pm" }, function(data){ process(data); }, "json");
或使用:
$.ajax({ url:url, type:"POST", data:data, contentType:"application/x-www-form-urlencoded; charset=utf-8", dataType:"json", success: function(){ ... } })
推薦使用第一種,不過也是根據自己的實際情況看的,有人推薦用encodeURIComponent 做字符轉換
總結一下ajax 提交數據亂碼一些經驗
#為了避免亂碼,可以做到以下幾步
解決方法
1,保持編碼的統一,包括檔案編碼,資料庫編碼,網頁content-type編碼
檢查一下< ;meta http-equiv=”content-type” content=”text/html; charset=UTF-8″ />
建議中文都是用UTF-8,使用gbk/gb2312有可能會出現亂碼
2,使用post來傳送而不是get
get方法是會透過連結來傳遞參數,而且會自動urlEncode(編碼),而各個瀏覽器編碼的方式可能不太一樣。使用post可以避免這種情況。
3,透過在js前端escape編碼再發送,然後後台解碼取得資料
這些可以在網路上搜尋
4,在全域設定contentType,指定編碼
因為jquery ajax是使用utf-8來編碼發送資料的,ie在發送時卻沒加上charset=utf-8,從而導致亂碼(IE默認使用iso-8859-1編碼)
程式碼如下:
$.ajaxSetup({ contentType: "application/x-www-form-urlencoded; charset=utf-8" });
以上是如何解決jquery $.post 亂碼問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!