ajax提交含有html数据时的处理方法
这两天在做一个文章内修改的功能,由于前端选用的Extjs控件库,于是就使用Ext.form.HtmlEditor.
在使用ajax提交数据的时候,需要提交包含有html代码的数据。这时候问题就来了,不管是对数据不编码,用escape()编码、encodeURI()编码还是用encodeURIComponent()编码,提交数据是,服务器都会报错(500错误),估计是某些这些编码函数无法编码的字符造成的,
正好在网上发现了一个干货,即自己写一个javascript函数,用来替换特殊字符,服务端接受后再反编码回来就可以了。函数如下:
前台处理(js):

function ajax_encode(str) { str = str.replace(/%/g,"{@bai@}"); str = str.replace(/ /g,"{@kong@}"); str = str.replace(/</g,"{@zuojian@}"); str = str.replace(/>/g,"{@youjian@}"); str = str.replace(/&/g,"{@and@}"); str = str.replace(/\"/g,"{@shuang@}"); str = str.replace(/\'/g,"{@dan@}"); str = str.replace(/\t/g,"{@tab@}"); str = str.replace(/\+/g,"{@jia@}"); return str; }
后台处理(C#):

public static string ajax_decode(string str, bool bsql) { str = str.Replace("{@bai@}", "%"); str = str.Replace("{@dan@}", "'"); str = str.Replace("{@shuang@}", "\""); str = str.Replace("{@kong@}", " "); str = str.Replace("{@zuojian@}", "<"); str = str.Replace("{@youjian@}", ">"); str = str.Replace("{@and@}", "&"); str = str.Replace("{@tab@}", "\t"); str = str.Replace("{@jia@}", "+"); if(bsql) str = str.Replace("'", "''"); return str; } public static string ajax_decode(string str) { return ajax_decode(str, true); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?