为了账号安全,请及时绑定邮箱和手机立即绑定

使用 Php,我如何访问我通过 Ajax 传递的 Java 脚本对象

使用 Php,我如何访问我通过 Ajax 传递的 Java 脚本对象

侃侃尔雅 2022-06-16 15:47:45
因此,正如我在上面解释的,我将访问(使用 PHP)我使用 JS 创建的对象,然后使用 Ajax 传递给 .php。我听说过 json,它可能很有用,或者没有它我可以工作吗?我正在链接我的代码:    var data = {     v_Post: document.getElementById("v_Post").value,     x: document.getElementById("x").value,     y: document.getElementById("y").value,      }    $.ajax({      type: "POST",      url: "http://localhost:80/mySite.it/scripts/script.php",      data: "data=" + data,      dataType: "html",      success: function(v) {        alert("Chiamata riuscita!!!");          },      error: function(){        alert("Chiamata fallita!!!");      }    });  });});我尝试在 php 中执行此操作,但似乎不起作用:   $data = $_POST['data'];   echo '<script>console.log($data.v_Post); </script>';   echo $data.v_Post;
查看完整描述

2 回答

?
慕桂英546537

TA贡献1848条经验 获得超10个赞

data是一个对象,您将其转换为字符串 ( "[object Object]"),因此实际数据在您将其发送到 PHP 之前会丢失。


只需将对象本身传递给 jQuery,而无需将其转换为字符串:


data: data,

然后 jQuery 将使用 PHP 将自动解码并用于填充的标准 Form Url 编码$_POST。


<?php

    header("Content-Type: text/plain");

    echo $_POST['v_Post'];

?>

然后它将在 JS 中可用:


success: function(response_data) {

     alert(response_data);

},


查看完整回答
反对 回复 2022-06-16
?
德玛西亚99

TA贡献1770条经验 获得超3个赞

如果您检查,则"data=" + data计算结果为data=[object Object],因为对象在连接时被强制转换为字符串。所以这不是我们想要的。


事实上,JSON 可以提供帮助,因为它为复杂数据形成了一个漂亮、统一的接口。此外,您不想自己指定参数编码(data=...作为字符串),因为 jQuery 可以为您完成,如果您只传递一个包含参数的对象。我还冒昧地将参数重命名为payload,因此我们没有两个不同的东西,既命名data又混淆了答案。你会这样使用它:


$.ajax({

  ...

  data: {

    payload: JSON.stringify(data)

  },

  ...

});

然后在 PHP 中,


$payload = json_decode($_POST['payload']);

我们也可以直接将 JSON 作为 POST 请求正文发送,而不是作为 POST 参数,但 PHP 对访问它并不是很好。你可以在这里看到更多。


但是,您没有复杂的数据结构,您有三个平面变量 - 可以简单地作为三个 POST 变量传输。在这种情况下,这就足够了:


$.ajax({

  ...

  data: data,

  ...

});

在 PHP 中:


$v_Post = $_POST['v_Post'];

$x = $_POST['x'];

$y = $_POST['y'];


查看完整回答
反对 回复 2022-06-16
  • 2 回答
  • 0 关注
  • 207 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号