【问题标题】:Running javascript inside php without echo在没有回声的情况下在php中运行javascript
【发布时间】:2015-05-08 06:19:20
【问题描述】:

所以我的服务器上有一个处理 HTTP POST 请求的 php 文件。当它收到一个发布请求时,它会运行一个 javascript 脚本。

目前我有带有 echo'...' 的脚本; 但问题是,使用 echo 中的脚本,它只是将原始代码发送到生成 HTTP 帖子的位置,而无需实际运行脚本。

有没有一种方法可以让我在不回显的情况下运行脚本。

谢谢

<?php

define('VERIFY_TOKEN', 'abc');
$method = $_SERVER['REQUEST_METHOD'];

if ($method == 'GET' && $_GET['hub_mode'] == 'subscribe' && $_GET['hub_verify_token'] == VERIFY_TOKEN) {
echo $_GET['hub_challenge'];
} 

else if ($method == 'POST') {

echo '
<script type="text/javascript" src="parse-1.4.2.min.js"></script>
<script type="text/javascript">         

        Parse.initialize("ID1", "ID2");

        var TestObject = Parse.Object.extend("Test");
        var testObject = new TestObject();
        testObject.set("key", "post");
        testObject.save();
</script>';
}
?>

【问题讨论】:

  • 你怎么知道它不起作用?顺便说一句,您正在尝试实现一些神奇的事情
  • PHP 在服务器上运行。 JS 在浏览器上运行。
  • 代码会运行。php在请求的时候创建html,转换成对应的html发送回来。浏览器接收的是纯html。所以不用管那个了。剩下的就是取决于可以处理js的浏览器,因为它是客户端脚本。js可以正常工作,即使它回显。
  • 你能在 HTML 页面上发布你的 JavaScript 代码吗?
  • 只能从浏览器执行脚本。

标签: javascript php


【解决方案1】:

你可以这样试试

<?php else if ($method == 'POST') {?>
<script type="text/javascript" src="parse-1.4.2.min.js"></script>
<script type="text/javascript">         

        Parse.initialize("ID1", "ID2");

        var TestObject = Parse.Object.extend("Test");
        var testObject = new TestObject();
        testObject.set("key", "post");
        testObject.save();
</script>
<?php }
?>

否则我认为没有其他方法

【讨论】:

  • 这与echo 的作用完全相同。
【解决方案2】:

当您的浏览器收到响应时,它期待正确的 HTML(并且两个 &lt;script&gt; 标记不是正确的 HTML)。尝试用一些最小的 HTML 包装你的响应:

echo '
<!DOCTYPE html>
<html>
<head>
    <script type="text/javascript" src="parse-1.4.2.min.js"></script>
    <script type="text/javascript">         

            Parse.initialize("ID1", "ID2");

            var TestObject = Parse.Object.extend("Test");
            var testObject = new TestObject();
            testObject.set("key", "post");
            testObject.save();
    </script>
</head>
<body>
</body>
</html>';
}

【讨论】:

    【解决方案3】:

    事实证明我真的不能这样做,因为 javascript 需要浏览器。由于只有 php 文件,我无法使其与 js 一起使用,所以我切换到所有 php。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-29
      相关资源
      最近更新 更多