ajax提交富文本,內容被截斷,解決方法及思路


問題描述:

使用百度的UEditor富文本插件用於前端富文本編輯,后端使用jsp,提交普通文本沒有問題,后來發現在提交某些指定文本時,數據查回的數據出現不完整現象;第一件事就是想到“垃圾編輯器”🙄,但是此時項目已經上線,再次重構時間成本太高,沒辦法只好硬着頭皮->“調試”😌。

解決思路:

前端獲取控件內容不完整,開啟前端調試:結果是有內容且完整

2602588880@chatroom_1471181550867_57

那完了,前端有,是不是后端沒有取到值,調試了一下后端,果然:

2602588880@chatroom_1471181658146_57

我開始懷疑人生了😱像這種情況還能怎么辦,那只有一種可能了,在向服務器提交時字符被截斷了

抽根煙,平復一下心情,點開了百度,輸入關鍵字:ajax 提交富文本 數據截斷

發現這條和我的很像,閱讀,測之

QQ截圖20160814230010

原來是包含特殊符號"&":提交的時候某個字段的值中包含有"&"符號,比如參數a=111&11,參數b=22222這樣組合成連接字符串 QuestionnaireAction?action=default&a=1111&11&b=2222就會有問題!!

搜嘎,富文本包含特殊符號

QQ截圖20160814230127

那怎么解決呢?

方式一、用encodeURIComponent編碼

data=encodeURIComponent(data);

方式二、ajax form驗證

data=$("#from").serialize();

ajax提交如下

data="param="+data;
$.ajax({
    type:"POST",
    url:"test",
    data:data,////如果包含&字符的字符串會出現錯誤
    success:function(str){
      ......
    }
  });

方式三,使用{"":""}組合數據

$.ajax({
    type:"POST",
    url:"test",
    data:{"param":data},//使用此方式提交可避免字符串中特殊字符帶來的數據截斷的問題
    success:function(str){
       ......
    }
  });
修改后的代碼如下:
QQ截圖20160814230127
beautiful,完美解決 將思路及解決方案分享給大家,希望能幫助到大家

原文由博主 樂智 編輯撰寫,版權歸博主所有。

原文地址 http://www.dtblog.cn/1052.html 轉載請注明出處!


免責聲明!

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



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