一般人使用是
jQuery(form).ajaxSubmit({
url: "ajaxsub.aspx?abc=test",
type: "post",
dataType: "json",
success: data
});
分析:JQuery的AJAX提交,會將要提交的數(shù)據(jù)進(jìn)行編碼,使用encodeURIComponent在js中處理數(shù)據(jù)。因此,無論是 Firefox或者IE,提交的數(shù)據(jù)都是一致的,都是UTF-8編碼后的數(shù)據(jù)。
查看Header,發(fā)現(xiàn)Entity中的Content-Type存在差異
在Firefox中,Content-Type指定了字符集為utf-8。
而IE里面卻沒有任何字符集指定,
顯然,默認(rèn)情況下,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的顯示指定,導(dǎo)致Server端采用UTF-8來解碼數(shù)據(jù)(正確解碼)。
查閱JQuery的AJAX工具函數(shù)的說明,發(fā)現(xiàn)options中有一個指定content-type的參數(shù)
所以在提交的時候要指定編碼類型
contentType: "application/x-www-form-urlencoded; charset=utf-8",
即如下
jQuery(form).ajaxSubmit({
url: "ajaxsub.aspx?abc=test",
type: "post",
dataType: "json",
contentType: "application/x-www-form-urlencoded; charset=utf-8",
success: data
});
以上內(nèi)容給大家分享了如何解決JQuery ajaxSubmit提交中文亂碼,希望對大家有所幫助。
您可能感興趣的文章:- jQuery中的AjaxSubmit使用講解
- 淺談jquery.form.js的ajaxSubmit和ajaxForm的使用
- jQuery ajaxSubmit 實(shí)現(xiàn)ajax提交表單局部刷新
- jQuery form插件之a(chǎn)jaxForm()和ajaxSubmit()的可選參數(shù)項(xiàng)對象
- jQuery使用ajaxSubmit()提交表單示例
- jquery ajaxSubmit 異步提交的簡單實(shí)現(xiàn)
- jquery的ajaxSubmit()異步上傳圖片并保存表單數(shù)據(jù)演示代碼
- Jquery ajaxsubmit上傳圖片實(shí)現(xiàn)代碼
- 如何理解jQuery中的ajaxSubmit方法