ajax傳遞html文字給server端失效與textarea中顯示html文字
阿新 • • 發佈:2019-02-16
在公司的一次任務中遇到,前端介面要傳遞html文字到後端。但是ajax再此方面略有欠缺,樓主用一個取巧的方法解決了問題,以此記錄一下。
問題:
- ajax傳遞html文字到後臺失效
- javascript 處理 textarea中顯示html文字
解決方案:
- 將html文字改變為普通文字
- 後端將普通文字轉化回html文字
實現方案:
- 前端實現
/**
* 將 <、>等符號替換為html轉義字元,如有別的字元,可自行新增
*/
function ajax_encode(str) {
str = str.replace("<" , "<");
str = str.replace(">", ">");
return str;
}
將html通過ajax_encode轉換後,然後經encodeURI(),傳遞到後端,post方法另行操作,將引數通過ajax傳遞到後端
$.ajax({
type: "GET",
url: "requesturi?data="+encode_data,
dataType: "json",
success: function (response) {
}
});
- 後端php實現方案
php的GET請求和POST請求會自動把引數反編譯 ,所以這裡不做處理
$params = $_GET;
$data = htmlspecialchars_decode($params['data']);
echo $data;
科普
htmlspecialchars_decode
為php將html文字轉義字元轉化為html符號
htmlspecialchars
將php將html特殊字元轉為 html轉義字元