我想使用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
数组中有数据,尽管所有值都有字符串数据类型。
答案 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}}
/>