四虎精品视频-四虎精品成人免费网站-四虎黄色网-四虎国产视频-国产免费91-国产蜜臀97一区二区三区

JQuery AJAX提交中文亂碼的解決方案

現(xiàn)象如下:

1)在Firefox下,處理頁面的編碼為gb2312,提交數(shù)據(jù)沒有問題,中文能夠正確解析;

2)在IE8下,處理頁面的編碼為gb2312,提交中文數(shù)據(jù)出現(xiàn)亂碼。

無論是$.post還是$.ajax,抑或$.ajaxSubmit(來自于Form插件),在之前的UTF-8編碼的網(wǎng)站都沒有出現(xiàn)過任何問題, 看來是由于提交數(shù)據(jù)的網(wǎng)頁的編碼格式造成的了。不管怎么樣,既然是瀏覽器之間存在差異,還是從HTTP包來看有什么問題吧。

打開Fiddle,分別用Firefox和IE做一個(gè)AJAX提交(以用戶登錄為例),檢查他們的HTTP頭,發(fā)現(xiàn)

1)兩個(gè)瀏覽器提交的Form數(shù)據(jù)是一致的,都是進(jìn)行了UTF-8的編碼,如下圖所示。


分析:JQuery的AJAX提交,會(huì)將要提交的數(shù)據(jù)進(jìn)行編碼,使用encodeURIComponent在js中處理數(shù)據(jù)。因此,無論是 Firefox或者IE,提交的數(shù)據(jù)都是一致的,都是UTF-8編碼后的數(shù)據(jù)。

2)查看Header,發(fā)現(xiàn)Entity中的Content-Type存在差異

在Firefox中,Content-Type指定了字符集為utf-8。


而在IE8中,卻沒有任何的字符集指定。


分析:顯然,默認(rèn)情況下,AJAX的異步提交的字符編碼應(yīng)該和網(wǎng)頁本身保持一致,也就是說,Server端在沒有發(fā)現(xiàn)顯示的charset指定的情 況下,使用gb2312來解碼數(shù)據(jù)(但是數(shù)據(jù)在提交前已經(jīng)被UTF-8編碼了),這就是為什么在IE下會(huì)出現(xiàn)亂碼的根源,而在Firefox下,瀏覽器在 提交AJAX數(shù)據(jù)的時(shí)候,加上了charset的顯示指定,導(dǎo)致Server端采用UTF-8來解碼數(shù)據(jù)(正確解碼)。

推斷:看來要解決這個(gè)中文亂碼問題,就必須給AJAX異步提交指定顯 示的charset!

馬上查閱JQuery的AJAX工具函數(shù)的說明,發(fā)現(xiàn)options中有一個(gè)指定content-type的參數(shù),給我的AJAX代碼加上:
復(fù)制代碼 代碼如下:
jQuery(form).ajaxSubmit({
url: "ajax.ASPx?a=memberlogin",
type: "post",
dataType: "json",
contentType: "application/x-www-form-urlencoded; charset=utf-8",
success: showLoginResponse
});

測(cè)試,OK!!!

JavaScript技術(shù)JQuery AJAX提交中文亂碼的解決方案,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 为奴12年| 勿言推理 电视剧| 蒲公英家族| 恶魔实验豚鼠| 大众点评开放平台| 免费成年人| 好看的国产动漫| 网络谜踪2 电影| 《在一起》电影免费观看| 睡前搞笑故事| 王菲电影| 恩齐| 《与凤行》演员表| 第五单元初试身手| 杨采钰电影| 变形金刚7免费高清电影| 都市频道在线直播观看| 性文章| 江南游戏| 张子恩| 中国安全生产报| 盲道电影| 狂野殴美激情性bbbbbb| 电影壮志凌云女版满天星法版在线看 | 斯科| 村暖花开| 欧美亚洲欧美| 非常外父| 墓王之王动漫完整版在线观看 | 哈基米| 和平精英捏脸码| 双重欲望| 老人头olderman中国| 大理旅游地图| junk boy| 飞鸟里伊奈| 蛇魔女大闹都市| 多尔衮电视剧全集40集| 广西柳州莫青作爱视频13| 诺亚方舟电影免费完整版在线观看| 晋中电视台|