如何通过 GM_xmlhttpRequest 发送布尔值?
How to send a boolean value by GM_xmlhttpRequest?
我在 Greasemonkey 中遇到表单问题。
我想发送一个布尔值 usign GM_xmlhttpRequest,但如果我发送:
GM_xmlhttpRequest({
method: "POST",
url: "http://localhost/test.php",
data: "confirm=true",
headers: {
"Content-Type": "application/x-www-form-urlencoded"
},
onload: function(response) {
console.log(response.responseText);
}
});
测试php:
var_dump( $_POST );
在控制台我看到:
array(1) { ["confirm"]=> string(4) "true" }
我该如何解决这个问题?
只需在服务器端将该值转换为布尔值 - 您已经有了该值。
你可以选择顺子 $myVar = $_POST["confirm"] === "true";
或使用 filter_var
和 FILTER_VALIDATE_BOOLEAN
标志,以涵盖更多选项:
$myVar = filter_var($_POST["confirm"], FILTER_VALIDATE_BOOLEAN);
- 这允许您涵盖 true
、TRUE
、on
、yes
等 - 全部解释为布尔值 true
.
由于您以 JSON 形式发送数据,您需要做的就是解码 post 类似于以下内容的值:
$var = json_decode($_POST['some_param']);
这样你会得到正确的类型。
我在 Greasemonkey 中遇到表单问题。 我想发送一个布尔值 usign GM_xmlhttpRequest,但如果我发送:
GM_xmlhttpRequest({
method: "POST",
url: "http://localhost/test.php",
data: "confirm=true",
headers: {
"Content-Type": "application/x-www-form-urlencoded"
},
onload: function(response) {
console.log(response.responseText);
}
});
测试php:
var_dump( $_POST );
在控制台我看到:
array(1) { ["confirm"]=> string(4) "true" }
我该如何解决这个问题?
只需在服务器端将该值转换为布尔值 - 您已经有了该值。
你可以选择顺子 $myVar = $_POST["confirm"] === "true";
或使用 filter_var
和 FILTER_VALIDATE_BOOLEAN
标志,以涵盖更多选项:
$myVar = filter_var($_POST["confirm"], FILTER_VALIDATE_BOOLEAN);
- 这允许您涵盖 true
、TRUE
、on
、yes
等 - 全部解释为布尔值 true
.
由于您以 JSON 形式发送数据,您需要做的就是解码 post 类似于以下内容的值:
$var = json_decode($_POST['some_param']);
这样你会得到正确的类型。