Ajax的简单HTML页面不起作用

时间:2012-07-18 13:33:49

标签: jquery

我刚刚开始了解AJAX。为此,我正在尝试在我的本地机器上搜索时找到的示例。但它没有用。

页面在加载页面时有一些静态文本,一旦我们向下滚动,使用ajax添加新的动态文本,但在滚动时不添加新文本。

html文件代码为:

 <script type="text/javascript" language="javascript">
    $(document).ready(function () {

        $(window).scroll(function () {
            if ($(window).scrollTop() == $(document).height() - $(window).height()) {
                sendData();
            }
        });

        function sendData() {
            $.ajax(
             {
                 type: "POST",
                 url: "https://localhost/kailash/cgi/testing/getdata.pl",
                 data: "{}",
                 contentType: "application/json; charset=utf-8",
                 dataType: "json",
                 async: "true",
                 cache: "false",

                 success: function (msg) {
                     $("#myDiv").append(msg.d);
                 },

                 Error: function (x, e) {
                     alert("Some error");
                 }

             });

        }

    });


</script>
</head>
<body>
<form id="form1" runat="server">
<div id="myDiv">

    <p>
        Static data initially rendered.
    </p>

调用getdata.pl。 getdata.pl中的代码是

our $resp;
my $cgi = new CGI;
print $cgi->header();

$resp = "<p>This content is dynamically appended to the existing content on scrolling.</p>";
return "$resp\n";

所以这不起作用。你可以帮助我让它工作吗? 请告诉我其中遗漏的内容。

3 个答案:

答案 0 :(得分:0)

一种可能性:将绝对https:网址更改为相对网址(例如/kailash/cgi/testing/getdata.pl)。通过AJAX连接到不同域的唯一方法是使用JSONP

另一种可能性:您的AJAX调用永远不会运行。在成功通话中添加alert()以确保实际调用sendData()

Here's one example如何正确使用$.ajax

答案 1 :(得分:0)

你确定你的确定吗? $( “#myDiv”)附加(msg.d);

,你试过吗? $(“#myDiv”)。append(msg.responseText); ?

答案 2 :(得分:0)

我已经解决了错误,由于这篇文章的帮助,我的代码中出现了错误: Check this

我取出了数据类型字段并仅使用:

$("#myDiv").append(msg);

现在我收到了ajax的内容。 AJAX非常酷,我向下滚动时添加了文字:)。