ajax post 空格变加号,Ajax Post数据加号变空格详解
我在頁面上得到BASE64編碼想通過AJAX方式與后臺(tái)交互,但是后臺(tái)得到的數(shù)據(jù)所有的+號(hào)都變成了空格,查了一下。
采用Ajax傳遞數(shù)據(jù)時(shí),通常會(huì)將數(shù)據(jù)整理為data="var1=abc&var2=def"。而當(dāng)數(shù)據(jù)中存在加號(hào)(+)或是連接符(&)時(shí),服務(wù)器端接收數(shù)據(jù)時(shí)會(huì)有部分?jǐn)?shù)據(jù)丟失現(xiàn)象。
分析一下Ajax傳遞數(shù)據(jù)的格式與Javascript的語法不難發(fā)現(xiàn):
1. "+"號(hào):JavaScript解析為字符串連接符,所以服務(wù)器端接收數(shù)據(jù)時(shí)"+"會(huì)丟失。
2. "&":JavaScript解析為變量連接符,所以服務(wù)器端接收數(shù)據(jù)時(shí)&符號(hào)以后的數(shù)據(jù)都會(huì)丟失。
解決辦法也相當(dāng)簡單,只需要為+與&符號(hào)編碼即可:
//使用post方式發(fā)送
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向后臺(tái)傳值
//xmlHttp.open("POST",url,true);
xmlHttp.open("POST",url,false);
xmlHttp.onreadystatechange = handleStateChange;
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xmlHttp.send(queryString);
//alert("結(jié)束? "+retCode);
}
總結(jié)
以上是生活随笔為你收集整理的ajax post 空格变加号,Ajax Post数据加号变空格详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jqgrid 服务器端验证,jqGrid
- 下一篇: 在win8上配置网站服务器,win8怎么