您的位置:首页 > Web前端 > jquery

Ajax Post请求数据中加号变空格的解决方法

更多 2016/8/7 来源:jquery学习浏览量:2405
学习标签: ajax
本文导读:在WEB编程中,经常需要与后台交互,我们可以通过AJAX方式,但是在使用POST提交数据时,如果参数中含有特殊字符,则需要我们特殊处理,将这些字符进行转义。例如POST请求的参数中包含+号,则在后台获取数据时,加号变成了空格。下面介绍具体的解决方法。

一、后台获取Ajax Post请求数据中参数值是,加号变空格的原因

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

 

二、解决方法:将+与&符号进行编码后进行传递

例如:

 
 
JScript 代码   复制


//使用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);
}

 

收藏
3
很赞
261