您好,登錄后才能下訂單哦!
小編給大家分享一下jquery ajax提交亂碼的解決方法,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
jquery ajax提交亂碼的解決辦法:1、將編碼設置統一;2、使用post方法來傳遞參數;3、通過在js前端escape編碼,然后在后臺解碼取得數據;4、在全局設定contentType,指定編碼即可。
jquery ajax 提交數據亂碼怎么辦?
在用jquery處理html5的應用的時候,一直在firefox下測試都正常,用戶用pad訪問的時候說有亂碼,自己試驗了下果然,后發現chrome和ie內核下都是有此問題,此問題設置了頁面屬性為utf-8時候,只有firefox是傳的charset=utf-8的頭文件,chrome和ie都沒有指定,所以出現亂碼問題.
解決方法:
代碼如下:
$.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 ajax提交亂碼的解決方法”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。