ajax传送参数含有特殊字符的快速解决方法

 更新时间:2016年04月27日 17:45:10   投稿:jingxian  
下面小编就为大家带来一篇ajax传送参数含有特殊字符的快速解决方法。希望对大家有所帮助,一起跟随小编过来看看吧

JQuery AJAX中遇到这样一个问题,参数中包含特殊字符,比如&'#@等, 这时执行AJAX的时候就会出问题,因为所传的参数变了.看个示例就明白:

方案一:

$.ajax({
  url: '/ashx/ajax.ashx',
  type: 'post',
  data: 'option=delete&name=11&adb, success: function (data) { if (data != 'error ') { } } }); '

上面执行的ajax就是异步删除一个name为 11&abd 的数据 当请求到ajax.ashx页面时,我们获取到的name参数为11 执行操作后会发现其实删除了name 为 11的数据,而没有删除 name 为 11&abc 的数据 这是由于有&特殊字符,把以前的俩个参数变成了三个参数 option,name,abc 这时就需要用另外一种方法传递参数:

$.ajax({
  url: '/ashx/ajax.ashx',
  type: 'post',
  data: {
    'option': 'delete',
    'name': '11&adb'
  },
  success: function(data) {
    if (data != 'error') {}
  }
});

采用上面的json格式传递参数就可以避免特殊字符引起的参数错误问题.

方案二: 统一编码UTF-8.

1.JSP页面:

<%@ page language="java" pageEncoding="UTF-8"%>

2.Ajax.js页面:传递参数时,可能出现特殊字符的参数用 escape(encodeURIComponent())两函数进行转码,传递到后台!

var url = "/ZX/servlet/AddMemoServlet memo=" + memoCode + "&otherMemo=" + escape(encodeURIComponent(otherMemo)) + "&applNo=" + applNo.innerText.substr(0, 16); //alert("url="+url); 
xmlHttp.open("POST", url, true); 
xmlHttp.onreadystatechange = doMemo; 
xmlHttp.send(null); 

3.服务器端接收传递的数据 比如:一个servlet的doGet方法中: request.setCharacterEncoding("gb2312"); response.setContentType("text/xml;charset=utf-8"); response.setHeader("Cache-Control", "no-cache"); ...... //以下解决Ajax中url传递的参数值中包含特殊字符,后端解析出错的问题:以utf-8以方式解码 java.net.URLDecoder urlDecoder=new java.net.URLDecoder(); String otherMemo = urlDecoder.decode(request.getParameter("otherMemo"),"utf-8"); logger.info("otherMemo:" + otherMemo);

以上这篇ajax传送参数含有特殊字符的快速解决方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Ajax实现无刷新分页实例代码

    Ajax实现无刷新分页实例代码

    这篇文章主要介绍了Ajax实现无刷新分页实例代码,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-03-03
  • Ajax返回数据之前的loading等待效果

    Ajax返回数据之前的loading等待效果

    我们通过ajax请求,向后台传递参数,然后后台经过一系列的运算之后向前台返还数据,我希望在等待数据成功返还之前可以展示一个loading.gif图。接下来通过本文给大家分享Ajax返回数据之前的loading等待效果,需要的朋友可以参考下
    2017-08-08
  • Ajax异步传输与PHP实现交互示例

    Ajax异步传输与PHP实现交互示例

    Ajax异步传输想必大家并不陌生吧,下面为大家介绍下与PHP实现交互的示例,大家不要错过
    2014-01-01
  • 基于Blod的ajax进度条下载实现示例代码

    基于Blod的ajax进度条下载实现示例代码

    本篇文章主要介绍了基于Blod的ajax进度条下载实现示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • SpringMVC+Ajax+拼接html字符串实例代码

    SpringMVC+Ajax+拼接html字符串实例代码

    这篇文章主要介绍了SpringMVC+Ajax+拼接html字符串实例代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-03-03
  • Ajax发送和接收请求

    Ajax发送和接收请求

    这篇文章主要为大家详细介绍了Ajax发送和接收请求的相关资料,感兴趣的小伙伴们可以参考一下
    2016-02-02
  • ajax 检测用户名是否被占用

    ajax 检测用户名是否被占用

    有时候在注册窗口,为了用户体验我们会用ajax无刷新检测用户名是否已被注册
    2006-06-06
  • 如何手写Ajax实现异步刷新

    如何手写Ajax实现异步刷新

    这篇文章主要教大家如何手写Ajax实现异步刷新,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • Ajax教程实例详解

    Ajax教程实例详解

    AJAX 是与服务器交换数据并更新部分网页的艺术,在不重新加载整个页面的情况下。接下来通过本文给大家介绍Ajax教程实例详解,对ajax相关知识感兴趣的朋友一起学习吧
    2016-03-03
  • Ajax加载外部页面弹出层效果实现方法

    Ajax加载外部页面弹出层效果实现方法

    这篇文章主要介绍了Ajax加载外部页面弹出层效果实现方法,涉及Ajax加载弹出层的实现技巧,非常简单实用,需要的朋友可以参考下
    2015-05-05

最新评论