JQuery Ajax 参数含有特殊字符
来源:互联网 发布:淘宝上代购药品 编辑:程序博客网 时间:2024/05/18 01:53
简单描述下问题出现的背景,在进行JQuery Ajax 开发时,发送一个请求,参数中有模糊查询的SQL语句,包含了“%”。
$.ajax({ url:'127.0.0.1/test', type:'POST', data:"condition=LIKE '%A%'", success:function(data){ }});
发现在请求提交后,服务器无法正常接收到 condition 的值。
URL中包含一些特殊字符,有着特殊的用途,比如‘?’是用来区分请求的地址和参数的。如果直接在请求地址中传送‘?’,服务器端是不认识它的,并不能保持原值接收。
如果想要服务器识别的URL是:127.0.0.1/test?condition=LIKE ‘%A%’,那么需要在浏览器中输入:127.0.0.1/test?condition=LIKE ‘%25A%25’。
那么我们如果使用AJAX,该怎么处理?
最简单粗暴的方式是:data: “condition= LIKE ‘%25A%25’”,手动转义参数字符串。但是如果参数是变化的,并且存在其他的特殊字符,这样处理并不灵活。
JS中提供了encodeURIComponent()函数,对URL的参数进行转义编码处理,可以这样处理:data: “condition= ” + encodeURIComponent(“LIKE ‘%A%’”)。
使用json数据格式传递参数,JQuery 会自动调用 encodeURIComponent() 对参数进行转码。如:data:{‘condition’: “LIKE ‘%A%’”}。
JavaScript对URL的转义编码处理提供了两个方法:
encodeURIComponent():不会对 ASCII字母、数字、~!@#$&*()=:/,;?+’进行转码。
encodeURI():不会对 ASCII字母、数字、~!*()’进行转码。
这两者都是用于URL编码,区别在于:encodeURIComponent()编码范围更大。举例来讲,encodeURIComponent()会把 http:// 编码成 http%3A%2F%2F 而encodeURI不会。
简单的讲,如果对整个URL进行编码使用encodeURI(),如果对参数进行编码使用encodeURIComponent()。
- JQuery Ajax 参数含有特殊字符
- ajax传递参数含有特殊字符解决方案
- ajax传递参数含有特殊字符解决方案
- ajax传递参数含有特殊字符解决方案
- ajax参数传递时含有特殊字符解决(否则只获取一部分字符,或者出错)
- ajax参数传递时含有特殊字符只能获取一部分字符
- Ajax传参里面含有特殊字符
- jQuery 查找含有特殊字符的元素
- ajax请求中传递的参数中如果含有特殊字符怎么处理?
- ajax请求中传递的参数中如果含有特殊字符怎么处理?
- GET请求中参数含有某些特殊字符的处理
- window.showModalDialog 参数传递中含有特殊字符的处理
- JQuery如何获取ID含有特殊字符的DOM元素
- 2014-06-30 jquery ajax当参数包含特殊字符如&*#等的时候
- Ajax请求,参数中含有非法字符处理
- 检测是否含有特殊字符
- ajax参数特殊字符处理与参数过长解决
- ajax 中关于URL路径及参数特殊字符问题
- Python程序设计—车万翔
- 全排列算法【非递归活动数实现】
- Android学习-认识Activity
- 课本简单程序执行
- 责任链模式
- JQuery Ajax 参数含有特殊字符
- 桌面许多快捷方式图标/文件左下角出现绿色对号小图标
- 学习机器学习前的准备
- 编译器小知识总结
- Sublime Text 3 c语言配置
- matlab 安装 cvx 和 mosek 以及 gurobi
- 关于用户的练习
- 使用idea搭建Scala 项目
- Makefile文件编写