在没有回声的情况下在PHP内运行javascript

时间:2015-05-08 06:19:21

标签: javascript php

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

目前我的脚本上有echo' ...&#39 ;; 但问题是,使用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>';
}
?>

3 个答案:

答案 0 :(得分: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 }
?>

否则我认为还有其他任何方式

答案 1 :(得分:1)

当您的浏览器收到回复时,它会预期正确的HTML(以及两个<script>标记不是正确的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>';
}

答案 2 :(得分:0)

事实证明,由于javascript需要浏览器,我无法做到这一点。而且由于只有php文件我无法使用js所以我切换到所有的php。