从cgi获取数据到javascript(ajax)

时间:2013-05-19 23:38:35

标签: jquery ajax cgi

我在C中创建了一个生成HTML的cgi程序,我想用它替换HTML页面的一部分。 所以,使用jquery我试图使用$ .ajax(),$。get()或$ .post()获取我的cgi的输出,但它不起作用,我发现firefox和chrome的调试器没有任何相关性。我运行Apache localy,日志说它确实有一个请求

  

127.0.0.1 - - [20 / May / 2013:01:19:32 +0200]“GET / cgi-bin / test_cgi HTTP / 1.1”200 682

我已经看了几个小时,似乎人们正在使用代码,就像我一样,但它适用于他们,不适合我,所以我只是粘贴它,让你看看有什么问题< / p>

的JavaScript(jquery的):

$(document).ready(function() {
    $('#button_ajax').click(function() {
        alert("success1");
        $.get('http://localhost/cgi-bin/test_cgi', function(data) {
                    //$('#ajax').empty().append(data);
            alert("success2");
        });
    });
});

HTML:

<button id="button_ajax">Click here!</button>
<div id="ajax">
<p>Some random test</p>
</div>

有一个“success1”弹出窗口,但是“success2”没有任何内容 这是我在firefox调试器中得到的内容

> [01:19:32,898] GET http://localhost/cgi-bin/test_cgi [HTTP/1.1 200 OK
> 2ms]

使用铬调试器我得到了这个

XMLHttpRequest cannot load http://localhost/cgi-bin/test_cgi. Origin null is not allowed by Access-Control-Allow-Origin.

任何人都需要进行一些推荐吗?

1 个答案:

答案 0 :(得分:2)

我能够在您呈现代码时运行代码。我也提醒了数据,所以我可以看到它确实正在检索页面的内容。你们有何不同?

这可能表示您的网络服务器配置存在一些问题。

<html>
   <head>
      <script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
      <script type="text/javascript">
     $(document).ready(function() {
        $('#button_ajax').click(function() {
           alert("success1");
           $.get('http://localhost:8888/so/test2.html', function(data) {
               //$('#ajax').empty().append(data);
               alert("success2" + data);
           });
        });
    });
      </script>
   </head>
   <body>
      <button id="button_ajax">Click here!</button>
      <div id="ajax">
         <p>Some random test</p>
      </div>
   </body>
</html>