Ajax Post数据时加号变空格的解决办法
2011-04-27 09:57
155 查看
采用Ajax传递数据时,通常会将数据整理为data="var1=abc&var2=def"。而当数据中存在加号(+)或是连接符(&)时,服务器端接收数据时会有部分数据丢失现象。
分析一下Ajax传递数据的格式与Javascript的语法不难发现:
1. "+"号:JavaScript解析为字符串连接符,所以服务器端接收数据时"+"会丢失。
2. "&":JavaScript解析为变量连接符,所以服务器端接收数据时&符号以后的数据都会丢失。
解决办法也相当简单,只需要为+与&符号编码即可:
分析一下Ajax传递数据的格式与Javascript的语法不难发现:
1. "+"号:JavaScript解析为字符串连接符,所以服务器端接收数据时"+"会丢失。
2. "&":JavaScript解析为变量连接符,所以服务器端接收数据时&符号以后的数据都会丢失。
解决办法也相当简单,只需要为+与&符号编码即可:
//使用post方式发送 function doRequestUsingPOST() { createXMLHttpRequest(); var retCode = document.getElementById("retCode").value; var data = document.getElementById("data").value; data = data.replace(/\+/g, "%2B"); data = data.replace(/\&/g, "%26"); var queryString = "retCode=" + retCode + "&data=" + data; var url = "backSealServlet"; //使用URL向后台传值 xmlHttp.open("POST",url,false); xmlHttp.onreadystatechange = handleStateChange; xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xmlHttp.send(queryString); }
相关文章推荐
- Ajax Post数据时加号变空格的解决办法
- Ajax Post数据时加号变空格的解决办法
- Ajax Post数据时加号变空格的解决办法
- Ajax Post数据加号变空格
- Ajax Post数据时加号变空格的解决办法
- Ajax跨域的解决办法:载入javascript(js)文件实现无刷新更新数据(转载)
- http请求中传输base64出现加号变空格的解决办法
- 解决js数据包含加号+通过ajax传到后台时出现连接错误
- [Android Pro] http请求中传输base64出现加号变空格的解决办法
- ajax post 提交数据到服务端时中文乱码解决方法
- 在phpstorm中利用post方法提交form表单后,在响应页面获取不到数据的解决办法
- C# post数据时 出现(417) Expectation Failed 的解决办法
- iis 7 asp.net ajax post 请求字节过大报错问题解决办法
- 在Ajax中使用get和post所遇到的问题及解决办法
- 解决js数据包含加号+通过ajax传到后台时出现连接错误
- 后端接收不到AngularJs中$http.post发送的数据原因分析及解决办法
- android POST数据遇到的UTF-8编码(乱码)问题解决办法
- iOS----POST异步请求解析数据时bug解决办法
- AJAX时,以GET方式提交数据,IE进行缓存,FF不缓存,四种解决的办法
- Ajax融合struts2过程中,action类回传给客户端中文数据出现问号乱码的解决办法