`

Ajax Post数据提交时加号变空格的解决办法

    博客分类:
  • JS
 
阅读更多

采用Ajax传递数据时,通常会将数据整理为data="var1=abc&var2=def"。而当数据中存在加号(+)或是连接符(&)时,服务器端接收数据时会有部分数据丢失现象。

  分析一下Ajax传递数据的格式与Javascript的语法不难发现:
  1. "+"号:JavaScript解析为字符串连接符,所以服务器端接收数据时"+"会丢失。
  2. "&":JavaScript解析为变量连接符,所以服务器端接收数据时&符号以后的数据都会丢失。

  解决办法也相当简单,只需要为+与&符号编码即可:

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 与GET提交的区别

    **POST**请求则用于向服务器提交数据,以便创建/更新资源。这种请求方式通过HTTP消息体发送数据,不暴露在URL中,因此适合于那些需要更改服务器状态的操作,如登录、提交表单等。 #### 二、GET与POST的主要区别 接...

    Java 模拟Ajax POST GET 提交代码

    Java 模拟Ajax POST GET 提交代码,实测很好用。

    ajax+pako.js实现gzip数据压缩上传,解决post数据过长问题

    在现代Web应用中,我们经常需要通过Ajax...通过以上步骤,我们可以实现使用ajax和pako.js的gzip数据压缩上传,有效解决POST数据过长的问题。这种技术尤其适用于需要发送大量数据的场景,如文件上传、实时同步大数据等。

    ajax快速解决参数过长无法提交成功的问题

    在ajax中使用post方法,用常规的参数格式:param1=a1&param2=a2 ,当参数长度过长时,依然提交不成功。比如我们经常这样写一个ajax的post请求: $.ajax({ type: "post", // post or get contentType:"application...

    Django解决Ajax中post提交数据403的代码

    然而,在使用Ajax向Django后端发送POST请求时,可能会遇到403 Forbidden错误,提示“CSRF token missing or incorrect.”。这个问题是由于Django的安全机制——跨站请求伪造(Cross-Site Request Forgery,简称CSRF...

    ajax post 数据过长导致后台属性驱动接受不到值的处理

    这篇博客“ajax post 数据过长导致后台属性驱动接受不到值的处理”着重探讨了当POST提交的数据量过大时,如何有效处理以确保后台能够正确接收和处理这些数据。问题的核心在于HTTP协议对请求体大小的限制以及服务器端...

    Ajax开发过程表单提交数据出现乱码和解决办法

    ### Ajax开发过程中表单提交数据出现乱码及解决办法 在进行Ajax开发的过程中,经常会遇到一个令人头疼的问题:表单提交的数据出现乱码。...遵循以上原则,可以有效避免在Ajax开发过程中表单提交数据时出现乱码问题。

    PHP+Jquery+AJAX POST,GET提交表单并接收返回

    3. **AJAX请求**:使用jQuery的`$.ajax()`或`$.post()`,`$.get()`方法发起异步请求。例如,对于POST请求: ```javascript $.ajax({ type: 'POST', url: 'server_script.php', // PHP处理脚本路径 data: $('...

    lotus domino AJAX post数据

    - HTTP的POST方法用于向服务器提交数据,常用于创建新资源或更新已有资源。在AJAX场景中,POST方法常用于向服务器发送表单数据或自定义数据。 以上就是关于"lotus domino AJAX post数据"这个主题的关键知识点,...

    通过Ajax进行Post提交Json数据的方法

    本篇文章将详细讲解如何使用Ajax进行POST提交JSON数据,以及相关的注意事项。 首先,让我们分析给定的JavaScript代码片段: ```javascript $.ajax({ type : "POST", url : js_path + "/maintainAdd/add", data ...

    Ajax使用POST提交中文乱码问题.docx

    在使用Ajax进行POST提交时,中文字符可能会遇到乱码问题,这是因为数据在传输过程中编码与解码不匹配导致的。Ajax以UTF-8编码发送数据,但服务器端可能使用了不同的字符集(如GB2312)来解析,这就产生了乱码。本文...

    按钮的Ajax请求时一次点击两次提交的解决方法

    当使用HTML表单提交数据时,点击类型为submit的按钮默认会触发表单的提交。在使用JavaScript的Ajax请求时,如果在Ajax请求完成后没有阻止按钮的默认行为,即表单提交,就会发生“一次点击两次提交”的情况。下面详细...

    AJAX-.net 无刷新提交数据

    本篇文章将深入探讨AJAX在.NET中的应用以及如何实现无刷新提交数据。 首先,我们需要了解AJAX的基本工作原理。它主要依赖于JavaScript的XMLHttpRequest对象来创建一个与服务器的连接,并在后台发送请求。当服务器...

    Ajax+JSON 提交数据的演示

    在现代Web开发中,Ajax(Asynchronous JavaScript and XML)技术和JSON(JavaScript Object Notation)的结合,已经成为一种高效、灵活的数据交互方式。本教程将深入探讨如何利用Ajax和JSON来改进传统的HTML表单数据...

    ajax提交表单到后台

    本主题将深入探讨如何使用jQuery库的AJAX功能将表单数据提交到后台,以及后台如何使用Spring框架来处理这些数据。下面将详细阐述这一过程。 ### 一、前端:使用jQuery的AJAX提交表单 1. **引入jQuery库**:首先...

    ajax实现提交时校验表单方法

    本文实例为大家分享了ajax提交时校验表单的方法,供大家参考,具体内容如下 方法一: 代码示例:  巧妙设计之处:ajax提交的话,不能够进行校验拦截,设置一个flag来判断,很巧妙的设计之处,故收藏! function ...

    lotus domino AJAX post代理获取大量数据时

    lotus domino AJAX post代理获取大量数据时

    jQuery ajax、post、get、json格式传递数据例子

    总结来说,jQuery的ajax、post、get方法是JavaScript进行Ajax操作的强大工具,配合JSON这种数据交换格式,使得前后端的数据交互变得简单而高效。通过熟练掌握这些技术,可以构建出响应式、动态的Web应用。

    jquery+ajax实现无刷新提交的功能

    - **提交方式**:`type: "POST"`使用POST方式提交数据。 - **提交地址**:`url: "ok.php"`数据提交到`ok.php`文件。 - **提交数据**:`data`参数包含提交的具体数据,这里是获取用户名和密码的值。 - **成功回调...

    ajax 防止按钮重复提交

    ### AJAX 防止按钮重复提交 在Web应用开发中,为了避免用户因网络延迟或误操作而导致的数据重复提交问题,通常会采取一定的措施来确保数据的一致性和完整性。本篇文章将详细探讨如何通过AJAX技术结合JavaScript来...

Global site tag (gtag.js) - Google Analytics