保留ajax POST格式/实时发布信息

时间:2017-01-06 23:15:21

标签: javascript php jquery ajax

我正在使用openvz脚本在家中运行一些虚拟机。 无论如何,我一直在研究一些js和ajax函数来发送post请求,所有这些都以innerHTML部分结束。 但是,当命令运行时,命令的结果合并为一行结果,我想保留原始格式,因为一些vzctl命令产生非常长的输出。 我最初使用PHP,并将命令的实时结果输出到Web浏览器中。 我想保持结果在同一行,如果可能的话,让它像我的旧设置与一些实时控制台源。 这曾经工作,因为我只是使用PHP,但现在我在php前面有AJAX,它删除了格式。

CTID NPROC STATUS IP_ADDR HOSTNAME 101 21 running - -

以上是使用ajax运行时vzlist的示例输出,而底部没有,我该如何修复?

CTID      NPROC STATUS    IP_ADDR         HOSTNAME
101         21 running   -               -

还有可能将ajax输出放入缓冲区,就像我用php一样吗?

<?php

$cmd = 'sudo '.$_POST["command"].' 2>&1';

while (@ ob_end_flush()); // end all output buffers if any

$proc = popen($cmd, 'r');
while (!feof($proc))
{
    echo fread($proc, 4096);
    @ flush();
}
?>

带有实时控制台的当前PHP文件。

function whoami () {
      $.ajax({
        url:"virt.php", //the page containing php script
        type: "POST", //request type
        data: "command=vzctl start 101",
        success:function(result){
        document.getElementById("test").innerHTML =(result);
       }
     });
 }
function ls () {
      $.ajax({
        url:"virt.php", //the page containing php script
        type: "POST", //request type
        data: "command=vzlist",
        success:function(result){
        document.getElementById("test").innerHTML =(result);
       }
     });
 }

使用ajax的当前html。 很抱歉长时间阅读,谢谢。

1 个答案:

答案 0 :(得分:0)

您可以在为result创建数据时尝试添加html和文件系统换行符。

在生成它时,我假设在php中,您可以在您想要休息的地方之后放置以下内容。

"<br>\r\n"

您可能已经在生成新行,如果是这样,您可以将输出包装在nl2br()中。这将创建html <br>元素来代替换行符。请参阅nl2br