jquery ajax post提交數(shù)據(jù)亂碼
更新時間:2013年11月05日 16:29:11 作者:
今天發(fā)現(xiàn)在使用jquery ajax.post提交數(shù)據(jù)時會發(fā)現(xiàn)數(shù)據(jù)在ff正常,但在chrome與ie瀏覽器中post過去的數(shù)據(jù)全部是亂碼
在用jquery處理html5的應(yīng)用的時候,一直在firefox下測試都正常,用戶用pad訪問的時候說有亂碼,
自己試驗了下果然,后發(fā)現(xiàn)chrome和ie內(nèi)核下都是有此問題,此問題設(shè)置了頁面屬性為utf-8時候,只有firefox是傳的charset=utf-8的頭文件
chrome和ie都沒有指定,所以出現(xiàn)亂碼問題.
解決方法:
$.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(){
...
}
})
推薦使用第一種,不過也是根據(jù)自己的實際情況看的,有人推薦用 encodeURIComponent 做字符轉(zhuǎn)換
總結(jié)一下ajax 提交數(shù)據(jù)亂碼一些經(jīng)驗
為了避免亂碼,可以做到以下幾步
解決方法
1,保持編碼的統(tǒng)一,包括文件編碼,數(shù)據(jù)庫編碼,網(wǎng)頁content-type編碼
檢查一下<meta http-equiv=”content-type” content=”text/html; charset=UTF-8″ />
建議中文都是用UTF-8,使用gbk/gb2312有可能會出現(xiàn)亂碼
2,使用post來發(fā)送而不是get
get方法是會通過鏈接來傳遞參數(shù),而且會自動urlEncode(編碼),而各個瀏覽器編碼的方式可能不太一樣。使用post可以避免這種情況。
3,通過在js前端escape編碼再發(fā)送,然后后臺解碼取得數(shù)據(jù)
這些可以在網(wǎng)上搜索
4,在全局設(shè)定contentType,指定編碼
因為jquery ajax是使用utf-8來編碼發(fā)送數(shù)據(jù)的,ie在發(fā)送時卻沒加上charset=utf-8,從而導(dǎo)致亂碼(IE默認(rèn)使用iso-8859-1編碼)
$.ajaxSetup({
contentType: "application/x-www-form-urlencoded; charset=utf-8"
});
自己試驗了下果然,后發(fā)現(xiàn)chrome和ie內(nèi)核下都是有此問題,此問題設(shè)置了頁面屬性為utf-8時候,只有firefox是傳的charset=utf-8的頭文件
chrome和ie都沒有指定,所以出現(xiàn)亂碼問題.
解決方法:
復(fù)制代碼 代碼如下:
$.ajaxSetup({
contentType: "application/x-www-form-urlencoded; charset=utf-8"
});
$.post("test.php", { name: "i5a6", time: "2pm" },
function(data){
process(data);
}, "json");
或者使用:
復(fù)制代碼 代碼如下:
$.ajax({
url:url,
type:"POST",
data:data,
contentType:"application/x-www-form-urlencoded; charset=utf-8",
dataType:"json",
success: function(){
...
}
})
推薦使用第一種,不過也是根據(jù)自己的實際情況看的,有人推薦用 encodeURIComponent 做字符轉(zhuǎn)換
總結(jié)一下ajax 提交數(shù)據(jù)亂碼一些經(jīng)驗
為了避免亂碼,可以做到以下幾步
解決方法
1,保持編碼的統(tǒng)一,包括文件編碼,數(shù)據(jù)庫編碼,網(wǎng)頁content-type編碼
檢查一下<meta http-equiv=”content-type” content=”text/html; charset=UTF-8″ />
建議中文都是用UTF-8,使用gbk/gb2312有可能會出現(xiàn)亂碼
2,使用post來發(fā)送而不是get
get方法是會通過鏈接來傳遞參數(shù),而且會自動urlEncode(編碼),而各個瀏覽器編碼的方式可能不太一樣。使用post可以避免這種情況。
3,通過在js前端escape編碼再發(fā)送,然后后臺解碼取得數(shù)據(jù)
這些可以在網(wǎng)上搜索
4,在全局設(shè)定contentType,指定編碼
因為jquery ajax是使用utf-8來編碼發(fā)送數(shù)據(jù)的,ie在發(fā)送時卻沒加上charset=utf-8,從而導(dǎo)致亂碼(IE默認(rèn)使用iso-8859-1編碼)
復(fù)制代碼 代碼如下:
$.ajaxSetup({
contentType: "application/x-www-form-urlencoded; charset=utf-8"
});
您可能感興趣的文章:
- Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法總結(jié)
- jquery中$.post()方法的簡單實例
- javascript jQuery $.post $.ajax用法
- jQuery get和post 方法傳值注意事項
- jQuery中ajax的post()方法用法實例
- Jquery AJAX POST與GET之間的區(qū)別
- jquery post方式傳遞多個參數(shù)值后臺以數(shù)組的方式進行接收
- jquery中g(shù)et,post和ajax方法的使用小結(jié)
- jquery向.ashx文件post中文亂碼問題的解決方法
- jQuery post數(shù)據(jù)至ashx實例詳解
相關(guān)文章
jQuery實現(xiàn)個性翻牌效果導(dǎo)航菜單的方法
這篇文章主要介紹了jQuery實現(xiàn)個性翻牌效果導(dǎo)航菜單的方法,實例分析了jQuery操作animate、css及鼠標(biāo)事件的技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-03-03
jQuery+SpringMVC中的復(fù)選框選擇與傳值實例
下面小編就為大家分享一篇jQuery+SpringMVC中的復(fù)選框選擇與傳值實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-01-01
Jquery中children與find之間的區(qū)別詳細解析
這篇文章主要是對Jquery中children與find之間的區(qū)別進行了詳細的分析介紹,需要的朋友可以過來參考下,希望對大家有所幫助2013-11-11
jQuery實現(xiàn)的數(shù)值范圍range2dslider選取插件特效多款代碼分享
這篇文章主要介紹了jQuery實現(xiàn)的數(shù)值范圍range2dslider選取插件特效,整體特效非常逼真自然,推薦給大家,有需要的小伙伴可以參考下2015-08-08
jQuery實現(xiàn)html可聯(lián)動的百分比進度條
這篇文章主要介紹了jQuery實現(xiàn)html可聯(lián)動的百分比進度條,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-03-03
jquery實現(xiàn)可橫向和豎向展開的動態(tài)下滑菜單效果
這篇文章主要介紹了jquery實現(xiàn)可橫向和豎向展開的動態(tài)下滑菜單效果,以實例形式較為詳細的分析了jquery實現(xiàn)橫向與豎向展開菜單的相關(guān)技巧,非常具有實用價值,需要的朋友可以參考下2015-08-08
jQuery實現(xiàn)轉(zhuǎn)動隨機數(shù)抽獎效果的方法
這篇文章主要介紹了jQuery實現(xiàn)轉(zhuǎn)動隨機數(shù)抽獎效果的方法,涉及jQuery操作隨機數(shù)及頁面元素的相關(guān)技巧,需要的朋友可以參考下2015-05-05
jQuery用noConflict代替$的實現(xiàn)方法
下面小編就為大家?guī)硪黄猨Query用noConflict代替$的實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-04-04

