如何通过 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_varFILTER_VALIDATE_BOOLEAN 标志,以涵盖更多选项:

$myVar = filter_var($_POST["confirm"], FILTER_VALIDATE_BOOLEAN); - 这允许您涵盖 trueTRUEonyes 等 - 全部解释为布尔值 true.

由于您以 JSON 形式发送数据,您需要做的就是解码 post 类似于以下内容的值:

$var = json_decode($_POST['some_param']);

这样你会得到正确的类型。