一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

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做一個AJAX提交(以用戶登錄為例),檢查他們的HTTP頭,發(fā)現(xiàn)

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


分析:JQuery的AJAX提交,會將要提交的數(shù)據(jù)進行編碼,使用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中,卻沒有任何的字符集指定。


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

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

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

測試,OK!!!

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

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

主站蜘蛛池模板: 亚洲精品国产成人专区 | 伊人影院在线观看视频 | 亚洲一区二区三区在线视频 | 免费一级特黄欧美大片勹久久网 | 视色4se影院在线观看 | 国产欧美一区二区精品性色99 | 涩涩涩涩涩涩涩涩涩涩 | 狠狠亚洲婷婷综合色香五 | 五月婷婷丁香 | 国产精品每日在线观看男人的天堂 | 成人精品在线视频 | 99精品国产闺蜜国产在线闺蜜 | 激情欧美一区二区三区中文字幕 | 国产91在线播放 | 国久久| 最新亚洲一区二区三区四区 | 激情亚洲婷婷 | 最近中文字幕无吗免费高清 | 99视频精品免视3 | 欧美亚洲另类色国产综合 | 色爱区综合激情五月综合色 | 狠狠欧美| 五月激情六月丁香 | 国产91精品久久久久999 | 精品国产香蕉在线播出 | 四虎永久在线精品视频免费观看 | 女的毛片毛片毛毛片毛毛毛毛片 | 最近更新中文字幕第一页 | 久在线观看视频 | 91视频啪 | 亚洲欧美色鬼久久综合 | 波多野结衣在线观看一区二区三区 | 久久亚洲精品国产亚洲老地址 | 222aaa精品影院 | 国产大片中文字幕在线观看 | 国产福利影院在线观看 | 亚洲情综合五月天 | 国产精品视频一区二区三区不卡 | 大学生一级毛片全黄真人 | 77788色淫网站女女免费视频 | 三级网站免费播放国语 |