AJAX POST数据中有特殊符号导致数据丢失的解决方法

使用Ajax传送数据时,当数据中存在加号(+)、连接符(&)或者百分号(%)时,服务器端接收数据时会丢失数据。分析Ajax传送数据的格式与Javascript的语法:

1. "+"号:JavaScript解析为字符串连接符,所以服务器端接收数据时"+"会丢失变空格。

2. "&"号:JavaScript解析为变量连接符,所以服务器端接收数据时&符号以后的数据都会丢失变空格。

解决方法是通过正则表达式进行编码替换(假设postStr是你想通过ajax传送的数据字符串)

postStr = postStr.replace(/%/g, "%25");
postStr = postStr.replace(/\&/g, "%26");
postStr = postStr.replace(/\+/g, "%2B");

来源:http://blog.csdn.net/xiancaifu/article/details/7975846

时间: 2024-11-04 15:11:28

AJAX POST数据中有特殊符号导致数据丢失的解决方法的相关文章

POST数据中有特殊符号导致数据丢失的解决方法

使用Ajax传送数据时,当数据中存在加号(+).连接符(&)或者百分号(%)时,服务器端接收数据时会丢失数据.分析Ajax传送数据的格式与Javascript的语法: 1. "+"号:JavaScript解析为字符串连接符,所以服务器端接收数据时"+"会丢失变空格. 2. "&"号:JavaScript解析为变量连接符,所以服务器端接收数据时&符号以后的数据都会丢失变空格. 解决方法是通过正则表达式进行编码替换(假设pos

winform频繁刷新导致界面闪烁解决方法

转自龙心文 原文 winform频繁刷新导致界面闪烁解决方法 一.通过对窗体和控件使用双缓冲来减少图形闪烁(当绘制图片时出现闪烁时,使用双缓冲) 对于大多数应用程序,.NET Framework 提供的默认双缓冲将提供最佳效果.默认情况下,标准 Windows 窗体控件是双缓冲的.可以通过两种方法对窗体和所创作的控件启用默认双缓冲.一种方法是将 DoubleBuffered 属性设置为 true,另一种方法是通过调用 SetStyle 方法将 OptimizedDoubleBuffer 标志设置

阿里云提出的漏洞(Phpcms V9某处逻辑问题导致getshell漏洞解决方法)的问题

最近从阿里云云盾检测流出来的,相比使用阿里云服务器的朋友已经收到漏洞提醒:Phpcms V9某处逻辑问题导致getshell漏洞解决方法,这个漏洞怎么办呢?CMSYOU在这里找到针对性解决办法分享给大家. 漏洞详情: 漏洞名称:phpcms某处逻辑问题导致getshell 补丁编号:7843523 补丁文件:/phpcms/libs/classes/attachment.class.php 补丁来源:云盾自研 更新时间:2016-09-20 13:03:10 漏洞描述:phpcms的/phpcm

jquery.ajax的url中传递中文乱码问题的解决方法

jquery.ajax的url中传递中文乱码问题的解决方法 JQuery JQuery默认的contentType:application/x-www-form-urlencoded 这才是JQuery正在乱码的原因,在未指定字符集的时候,是使用ISO-8859-1 ISO8859-1,通常叫做Latin-1.Latin-1包括了书写所有西方欧洲语言不可缺少的附加字符. JQuery的Ajax根本没有考虑到国际化的问题,使用了欧洲的字符集,所以才引起了传递中文出现乱码的问题. 而我们的UTF-8

XCode编译文件过多导致内存吃紧解决方法

XCode编译文件过多导致内存吃紧解决方法 /Users/~~/Library/Developer/Xcode/DerivedData 1) 然后 找到编译文件 删除 就好了哦 快去试试看吧

服务器raid5磁盘阵列不同故障导致数据丢失的数据恢复方法(案例)

服务器Raid 5阵列算法 Raid5阵列使用的算法通常被称为"异或运算",这是一个数学运算符.它应用于逻辑运算.异或的数学符号为"⊕",计算机符号为"xor".其运算法则为:a⊕b = (?a ∧ b) ∨ (a ∧?b).如果a.b两个值不相同,则异或结果为1.如果a.b两个值相同,异或结果为0.异或也叫半加运算,其运算法则相当于不带进位的二进制加法:二进制下用1表示真,0表示假,则异或的运算法则为:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1

返回Json数据浏览器带上<pre></pre>标签解决方法

问题:  当后台获取到前台传来的文件时(例如上传功能, 导入功能), 返回类型为application/json, 这个时候响应到前端的JSON格式的数据格式可能是: <pre style="word-wrap: break-word; white-space: pre-wrap;">{"JsonKey":"JsonValue"}</pre> 这个是不同浏览器对返回数据处理的问题. 解决方法:      1. 在前端解决

Ajax返回数据却一直进入error(已经解决)

做asp.net项目  使用ajax $.ajax({ url: '../Music/Default2.aspx?Types=' + type + '&texts=' + text + '', type: 'GET', // data: '&texts=' + text + '',dataType: 'json', success: function (data) { console.log(data); } }); 都没有问题   返回数据,打印出data  结果 发现没有数据 去Net

EF 未应用自动迁移,因为自动迁移会导致数据丢失的解决办法

在  工具->库程序包管理器->程序包管理器控制台   窗口里运行 Add-Migration Initial 指令再输入Update-Database执行