2

我用 C 语言制作了一个生成 HTML 的 cgi 程序,我想用它替换 HTML 页面的一部分。因此,使用 jquery,我尝试使用 $.ajax()、$.get() 或 $.post() 获取 cgi 的输出,但它不起作用,我在 firefox 和 chromium 的调试器中没有发现任何相关内容。我在本地运行 Apache,日志说它确实有一个请求

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

我已经找了好几个小时了,似乎人们像我一样使用代码,但它对他们有用,而不是对我有用,所以我只是粘贴它,让你看看有什么问题

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.

有人提出一些建议吗?

4

1 回答 1

2

我可以运行您提供的代码。我还提醒了数据,所以我可以看到它确实在检索页面的内容。你的有什么不同?

这可能表明您的 Web 服务器的配置存在一些问题。

<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>
于 2013-05-20T01:06:20.003 回答