ajax提交后台亂碼,IE會亂碼其他瀏覽器不會


<script type="text/javascript">
    $(document).ready(function(){
        $(".a-btn2").click(function(){
            var url = "person.dragon.cases(1)";
            $.ajax({
                url : url,
                type : 'POST',
                data : {'text1':'開始加載信息代碼'},
                //contextType : "application/json",
                //dataType : 'json',
                async : false,
                success : function(result){
                    alert(result[0].caseId+" , "+result[0].name+" ,"+result[0].suspectList[0].xm);
                },
                error : function(){
                    alert('非常抱歉,獲取更多管控情況出錯,請聯系管理員!');
                }
            });
        });
    })
</script>
@ResponseBody
@RequestMapping("/person.dragon.cases({id})")
public List<Case> getCasesMessage(@PathVariable String id,HttpServletRequest request) throws IOException{
    List<Case> cases = personDossierService.getCases(id, 1000);
    Case c = new Case();
    c.setCaseId(id);
    c.setName(request.getParameter("text1"));
    Suspect s = new Suspect();
    s.setAjbh("123");
    s.setXm("張三");
    List<Suspect> suspectList = new ArrayList<Suspect>();
    suspectList.add(s);
    c.setSuspectList(suspectList);
    cases.clear();
    cases.add(c);
    return cases;
}

 

問題:在JQueryAjax POST請求中,進行請求,其中的中文在后台,顯示為亂碼,在FF/Chrome中,可以正常傳遞中文,但是在IE下,則存在問題

解決辦法一:

前段:data : {'text1':encodeURI('開始加載信息代碼', "UTF-8")}  使用encodeURI進行編碼 
后端Java代碼: c.setName(URLDecoder.decode(request.getParameter("text1"), "UTF-8")); 后端代碼針對前段傳遞過來的字符串,進行解碼。 

解決辦法二:

設置ajax參數:contentType: "application/x-www-form-urlencoded; charset=utf-8"

 

原因:

在IE下post提交中文亂碼,firefox下不會,對比兩邊提交的請求頭信息發現問題出現在Content-Type,IE下是Content-Type application/x-www-form-urlencoded;而firefox下是Content-Type application/x-www-form-urlencoded; charset=utf-8 ,IE沒有設置charset=utf-8,

簡單解決這個問題:

設置全局的Content-Type為:contentType: "application/x-www-form-urlencoded; charset=utf-8"


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM