zoukankan      html  css  js  c++  java
  • ajax请求中传递的参数中如果含有特殊字符怎么处理?

    在JQUERY AJAX开发中遇到了下面的一个问题,在执行AJAX请求的时候,需要传递一个“50%”的参数,而这个参数中含有特殊字符%。这样的话就会出现问题了,我们知道服务器在发送请求的时候,会将url中的参数转化成类似于“%2C%2F%3F%3A%40%26%3D%2B%24%23”,所以在我们执行含有这样特殊字符的ajax请求的时候就会出现错误,因为我们传递的参数可能发生了变化,也可能由于参数本身中就含有特殊字符所以系统没有办法编译它。

    可能会抛出这样的一个异常:

    警告: Parameters: Character decoding failed. Parameter skipped.

    解决的办法:

    1、改变传递参数的形式:

    例如:

    var testUrl ="param1="+cond1+"&params2="+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+"&params2="+encodeURIComponent(cond2);
  • 相关阅读:
    [BS] 小知识点总结-02
    [BS] 小知识点总结-03
    [BS] 小知识点总结-01
    [BS-12] JSON的基础知识--百科
    [BS-11] 关于RGB/ARGB颜色相关知识
    Mac自定义隐藏或显示文件的快捷键
    iOS开发环境C语言基础
    Objective -C Memory Management 内存管理 第一部分
    Objective-C Foundation 框架 Example :Looking for Files 查找文件
    Objective
  • 原文地址:https://www.cnblogs.com/yaoxiaoxing/p/5106325.html
Copyright © 2011-2022 走看看