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);
}
参考:http://blog.jiqila.com/post/172/
ajax提交含有html数据时的处理方法的更多相关文章
- spring mvc接收ajax提交的JSON数据,并反序列化为对象
需求:spring mvc接收ajax提交的JSON数据,并反序列化为对象,代码如下: 前台JS代码: //属性要与带转化的对象属性对应 var param={name:'语文',price:16}; ...
- 使用ajax提交的json数据,产生筹码问题
使用ajax提交的json数据,我们必须添加produces注解,如下所示.否则将会产生乱码 方法一:添加produces注解 @ApiOperation(value = "删除日志&quo ...
- 使用@RequestBody注解获取Ajax提交的json数据
最近在学习有关springMVC的知识,今天学习如何使用@RequestBody注解来获取Ajax提交的json数据内容. Ajax部分代码如下: 1 $(function(){ 2 $(" ...
- HTTP 请求方式: GET和POST的比较当发送数据时,GET 方法向 URL 添加数据;URL 的长度是受限制的(URL 的最大长度是 2048 个字符)。
什么是HTTP? 超文本传输协议(HyperText Transfer Protocol -- HTTP)是一个设计来使客户端和服务器顺利进行通讯的协议. HTTP在客户端和服务器之间以request ...
- 使用size()方法输出列表中的元素数量。需要注意的是,这个方法返回的值可能不是真实的,尤其当有线程在添加数据或者移除数据时,这个方法需要遍历整个列表来计算元素数量,而遍历过的数据可能已经改变。仅当没有任何线程修改列表时,才能保证返回的结果是准确的。
使用size()方法输出列表中的元素数量.需要注意的是,这个方法返回的值可能不是真实的,尤其当有线程在添加数据或者移除数据时,这个方法需要遍历整个列表来计算元素数量,而遍历过的数据可能已经改变.仅当没 ...
- 通过jQuery Ajax提交表单数据时同时上传附件
1.使用场景:需要使用ajax提交表单,但是提交的表单里含有附件上传 2.代码实现方式: <!-- HTML代码 --> <form method="post" ...
- Ajax 提交KindEditor的数据
这次我是在EasyUI中使用了KindEditor的编辑器,按照官方给的代码,总是无法获取编辑器里面的值(内容),如下: KindEditor.ready(function (K) { ...
- WCF+Restfull服务 提交或获取数据时数据大小限制问题解决方案
近日在使用wcf的restfull架构服务时遭遇到了提交大数据的问题. 大数据包含两种情形: 1)单条数据量过大. 2)提交或获取的数据条数过多. 在测试时发现,默认设置下当单条JSON数据大于30K ...
- 关于form表单或者Ajax向后台发送数据时,数据格式的探究
最近在做一个资产管理系统项目,其中有一个部分是客户端向服务端发送采集到的数据的,服务端是Django写的,客户端需要用rrequests模块模拟发送请求 假设发送的数据是这样的: data = {'s ...
随机推荐
- 为Ubuntu Server安装gnome图形桌面环境
Ubuntu Server版默认都没有图形桌面(GUI),但是可以安装,以下共有两种安装方法. 一.安装全部Gnome桌面环境 Ubuntu系列桌面实际上有几种桌面应用程序,包括Ubuntu-desk ...
- Environment Variables
https://msdn.microsoft.com/en-us/library/windows/desktop/ms682653(v=vs.85).aspx Every process has an ...
- Delphi Application.MessageBox详解
引数:1. Text:要显示的讯息2. Caption:讯息视窗的标题列文字3. Flags:讯息旗标 3.1. 可指定讯息视窗上的图示 3.2. 可指定讯息视窗出现的按钮 3 ...
- android imageButton 点击按钮前中后,按钮颜色的变化
我们在开发的过程中,往往为了美化界面的需要,会修改按钮的默认外观,而因为Android中的按钮有三种状态—默认,被点击,被选中.所以,如果要改变按钮的外观,需要对这三种情况都做出修改,也许在以往,我们 ...
- iframe框架里镶嵌页面;<marquee>:滚动效果;<mark>做标记;内联、内嵌、外联;选择器
标签:①②③④⑤⑥⑦★ 框架: 一.frameset:(框架集) 1.如果使用框架集,当前页面不能有body 2.cols="300,*":左右拆分,左边宽300,右边宽剩余 3. ...
- C# 操作Cookie类
1.Cookie操作类 using System; using System.Data; using System.Configuration;using System.Web;using Syste ...
- 如何在Qt 4程序中优化布局结构(表格讲解,很清楚)
原文地址:http://blog.csdn.net/qter_wd007/archive/2010/03/13/5377882.aspx 在迄今为止讲到每一个例子中,我们只是简单的把窗口部件放置到某个 ...
- JS懒加载
4.如何使用js懒加载图片 a.懒加载图片是基于jquery.js的,所以: <script src="jquery.js" type="text/ja ...
- 常用分类列表wp_list_categories()
使用: <ul> <?php $args= array( 'depth'=>1, 'orderby'=>id, 'style'=>none ); wp_list_c ...
- javascript正则表达式(一)
元字符 ( [ { \ ^ $ | ) ? * + . 预定义的特殊字符 字符 正则 描述 \t /\t/ 制表符 \n /\n/ 制表符 \r /\r/ 回车符 \f /\f/ 换页符 \a /\a ...