如何通过GM_xmlhttpRequest发送布尔值?

时间:2016-12-22 18:50:11

标签: javascript php greasemonkey

我在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”}

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

只需在服务器端将值转换为布尔值 - 您已经拥有该值。

您可以直接$myVar = $_POST["confirm"] === "true";

或使用带有filter_var标记的FILTER_VALIDATE_BOOLEAN来涵盖更多选项:

$myVar = filter_var($_POST["confirm"], FILTER_VALIDATE_BOOLEAN); - 这可以让您涵盖trueTRUEonyes等等 - 所有内容都被解释为布尔true

答案 1 :(得分:0)

由于您以 JSON 格式发送数据,因此您需要做的就是对类似于以下内容的 post 值进行解码:

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

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