ajax请求中传递的参数中如果含有特殊字符怎么处理?
2015-12-03 15:28
661 查看
在JQUERY AJAX开发中遇到了下面的一个问题,在执行AJAX请求的时候,需要传递一个“50%”的参数,而这个参数中含有特殊字符%。这样的话就会出现问题了,我们知道服务器在发送请求的时候,会将url中的参数转化成类似于“%2C%2F%3F%3A%40%26%3D%2B%24%23”,所以在我们执行含有这样特殊字符的ajax请求的时候就会出现错误,因为我们传递的参数可能发生了变化,也可能由于参数本身中就含有特殊字符所以系统没有办法编译它。
可能会抛出这样的一个异常:
警告: Parameters: Character decoding failed. Parameter skipped.
解决的办法:
1、改变传递参数的形式:
例如:
在上面这段代码中
如果cond2 = “50%”,那么这个参数中就有了%特殊字符,这样执行的话可定时会有问题。怎么修改呢?
我们说过了改变传递参数的形式
修改data部分,以json格式的数据传递,这样就可以避免由于特殊字符引起的错误参数问题:
data:{‘param1’:cond1,’param2’:cond2}
2、还是按照例子1中的传递方式传递参数,只不过为了达到我们的目的,我们对要传递的参数进行编码。
例如,如果还是例子1,我们把testUrl修改成下面这种写法,使用encodeURIComponent(urlString)函数对url中传递的参数做编码操作就可以了:
关于encodeURIComponent()函数的参考资料
http://www.cnblogs.com/tylerdonet/p/3483836.html
可能会抛出这样的一个异常:
警告: Parameters: Character decoding failed. Parameter skipped.
解决的办法:
1、改变传递参数的形式:
例如:
var testUrl ="param1="+cond1+"¶ms2="+cond2 ; $.ajax({ type:"POST", url:"testUrl", data:allParams, success:function(data){ } });
在上面这段代码中
如果cond2 = “50%”,那么这个参数中就有了%特殊字符,这样执行的话可定时会有问题。怎么修改呢?
我们说过了改变传递参数的形式
修改data部分,以json格式的数据传递,这样就可以避免由于特殊字符引起的错误参数问题:
data:{‘param1’:cond1,’param2’:cond2}
2、还是按照例子1中的传递方式传递参数,只不过为了达到我们的目的,我们对要传递的参数进行编码。
例如,如果还是例子1,我们把testUrl修改成下面这种写法,使用encodeURIComponent(urlString)函数对url中传递的参数做编码操作就可以了:
var testUrl ="param1="+cond1+"¶ms2="+encodeURIComponent(cond2);
关于encodeURIComponent()函数的参考资料
http://www.cnblogs.com/tylerdonet/p/3483836.html
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- JavaScript演示排序算法
- 2015-2016网页设计趋势分析 Web Design of Trends
- jQuery Ajax 跨域调用
- 移动端的长按事件
- jquery教程靠边站,一分钱不花让你免费学会jquery
- JQuery+Strusts1.x无刷新登录
- JavaScript 各种遍历方式详解
- jQuery菜单插件用法实例
- JQuery 初体验(建议学习jquery)
- 基于Jquery和CSS3制作数字时钟附源码下载(CSS3篇)
- Jquery实现的table最后一行添加样式的代码
- jQuery实现向下滑出的平滑下拉菜单效果
- jQuery 练习[一] 学习jquery的准备工作
- jquery获得页面元素的坐标值实现思路及代码
- 使用Browserify配合jQuery进行编程的超级指南
- jquery如何实现在加载完iframe的内容后再进行操作
- jquery $.ajax()取xml数据的小问题解决方法
- jQuery '行 4954 错误: 不支持该属性或方法' 的问题解决方法
- Jquery 表单取值赋值的一些基本操作