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

时间:2018-08-06 16:45:06

标签: php jquery ajax

我想使用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){


    }
});

然后,$_POST数组中有数据,尽管所有值都有字符串数据类型。

4 个答案:

答案 0 :(得分:1)

我不知道为什么要向ajax调用中添加两个data对象。删除没有json.stringify的那一个,然后从php端尝试一下,

$data = json_decode(file_get_contents('php://input'), true);
print_r($data);
echo $data["firts_step"];

答案 1 :(得分:0)

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

答案 2 :(得分:0)

因为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;

祝你好运

答案 3 :(得分:-1)

在boolean的php中,您可以使用filter_var

示例:

<WebView
        javaScriptEnabled
        source={{uri: 'https://stackoverflow.com/'}}
        style={{marginTop: 20}}
      />

此处是手册:http://php.net/manual/en/function.filter-var.php