首頁  >  文章  >  web前端  >  jquery ajax 提交亂碼怎麼辦

jquery ajax 提交亂碼怎麼辦

藏色散人
藏色散人原創
2021-01-07 09:52:452260瀏覽

jquery ajax提交亂碼的解決方法:1、將編碼設定統一;2、使用post方法來傳遞參數;3、透過在js前端escape編碼,然後在後台解碼取得資料;4、在全局設定contentType,指定編碼即可。

jquery ajax 提交亂碼怎麼辦

本教學操作環境:windows7系統、jquery1.10.0版本、Dell G3電腦。

推薦:jquery教學

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編碼

檢查4e9857ad2e3c8b43d69358f441fd4d82

建議中文都是用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 提交亂碼怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn