代码之家  ›  专栏  ›  技术社区  ›  Oto Shavadze

如何使用ajax发送正确的数据类型?

  •  -1
  • Oto Shavadze  · 技术社区  · 6 年前

    我希望使用ajax将正确的数据类型发送到服务器,我的意思是,我希望服务器接收布尔值作为布尔值,整数作为整数(不是字符串)等等。。。

    我试过了,但当我检查时服务器收到空数组 $_POST

    params = {"firts_step":true};
    
    $.ajax({
    
        contentType: "application/json",
        type: "POST",
        url: "url_here",
        data: JSON.stringify(params),
        success: function(msg){
    
    
        }
    });
    

    如果试试这个:

    params = {"firts_step":true};
    
    $.ajax({
    
        type: "POST",
        url: "url_here",
        data: params,
        success: function(msg){
    
    
        }
    });
    

    那里面有数据 $邮政 数组,尽管所有值都具有字符串数据类型。

    4 回复  |  直到 6 年前
        1
  •  1
  •   Lasitha    6 年前

    我不知道你为什么加两个 data 对象到ajax调用。去掉一个没有 json.stringify 从php方面尝试一下,

    $data = json_decode(file_get_contents('php://input'), true);
    print_r($data);
    echo $data["firts_step"];
    
        2
  •  0
  •   Lucas Wieloch    6 年前

    如果选择JSON作为内容类型,则只能使用 JSON documentation . 另外,在解析JSON之前,请确保对象具有正确的数据类型。

        3
  •  0
  •   Mosi    6 年前

    因为HTTP是一个没有布尔或整数概念的文本协议,所以所有内容都必须严格化

    对于布尔人测试这个

    params = {"firts_step":true ? 1 : 0};
    

    在php中

    $x = ($_POST['firts_step'] == 1 ) ? true : false;
    

    params {"firts_step":"TRUE" };
    

    在php中

    $x = ($_POST['firts_step'] == "TRUE" ) ? true : false;
    

    祝你好运

        4
  •  -1
  •   Mike Aron    6 年前

    在php中,对于boolean,可以使用filter_var

    例子:

    $params['first_step'] = filter_var( $params['first_step'], FILTER_VALIDATE_BOOLEAN);
    

    http://php.net/manual/en/function.filter-var.php