首頁 >web前端 >js教程 >如何解決JQuery ajaxSubmit提交中文亂碼

如何解決JQuery ajaxSubmit提交中文亂碼

亚连
亚连原創
2018-05-25 09:47:452686瀏覽

本文跟大家分享jquery ajax submit提交中文亂碼問題的解決辦法,有興趣的朋友跟著我一起來學習吧

一般人使用是

jQuery(form).ajaxSubmit({ 
url: "ajaxsub.aspx?abc=test",
type: "post", 
dataType: "json", 
success: data
});

分析:JQuery的AJAX提交,會將要提交的資料進行編碼,使用encodeURIComponent在js中處理資料。因此,無論是 Firefox或IE,提交的資料都是一致的,都是UTF-8編碼後的資料。

查看Header,發現Entity中的Content-Type有差異

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

而IE裡面卻沒有任何字元集指定,

顯然,預設情況下,AJAX的非同步提交的字元編碼應該和網頁本身保持一致,也就是說,Server端在沒有發現顯示的charset指定的情況下,使用gb2312來解碼資料(但是資料在提交前已經被UTF-8編碼了),這就是為什麼在IE下會出現亂碼的根源,而在Firefox下,瀏覽器在提交AJAX資料的時候,加上了charset的顯示指定,導致Server端採用UTF-8來解碼資料(正確解碼)。

查閱JQuery的AJAX工具函數的說明,發現options中有一個指定content-type的參數

所以在提交的時候要指定編碼型別

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
});

上面是我整理給大家的,希望今後會對大家有幫助。

相關文章:

JQuery ajax 返回json時出現中文亂碼該如何解決

Django框架如何使用ajax的post方法

詳解ajax jtemplate實作動態分頁

以上是如何解決JQuery ajaxSubmit提交中文亂碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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