通过cgi运行java时,Ajax请求获得0长度响应

时间:2014-05-26 14:00:18

标签: java jquery ajax cgi

这就是它的工作原理:

<div id="result">Result will be printed here</div>

<form method="POST" action="/cgi-bin/execute.cgi">
  <input type="text" name="user" /> <br/>
  <input type="password" name="password" /> <br/>
  <input type="submit" value="Send"/>
</form>

execute.cgi:

#!/bin/sh
echo "Content-type: text/html"
echo ""
java -version

这将显示&#34; java -version&#34;的输出。在新的页面中 到目前为止,一切都按预期工作。

但是,如果我使用ajax执行请求:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script>
$(function() {
  $('form').submit(function(event) {
    event.preventDefault();

    $.ajax({
      url: '/cgi-bin/execute.cgi',
      type: $(this).attr('method'),
      contentType: 'application/x-www-form-urlencoded',
      data: $(this).serialize(),
      success: function(response) {
        console.log('response length:' + response.length);
        $('#result').html(response);
      }
    });
  });
});
</script>

响应的正文大小为0,状态代码为200 好像&#39; java -version&#39;被忽略或者不等待它打印输出。 我宁愿认为这是后一种情况,因为如果我转向更轻松的东西,比如&#39; ls -la&#39;然后它就像一个魅力。

所有想法如何解决这个问题?

0 个答案:

没有答案