0

私は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";

したがって、これは機能していません。それを機能させるのを手伝ってくれませんか。何が足りないのか教えてください。

4

3 に答える 3

0

私はエラーを解決しました、私はこの投稿の助けのために私のコードで間違いを犯しました: これをチェックしてください

データ型フィールドを取り出して、以下のみを使用しました。

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

今、私はajaxコンテンツを取得しています。AJAXは本当にかっこいいです、私が下にスクロールするとテキストが追加されます:)。

于 2012-07-18T14:24:46.723 に答える
0

1つの可能性:絶対https:URLを相対URL(など/kailash/cgi/testing/getdata.pl)に変更します。AJAXを介して別のドメインに接続する唯一の方法は、JSONPを使用することです。

別の可能性:AJAX呼び出しが実行されていない。alert()成功呼び出しにを追加して、それsendData()が実際に呼び出されていることを確認します。

$.ajax正しく使用する方法の一例を次に示します。

于 2012-07-18T13:36:12.213 に答える
0


$( "#myDiv")。append(msg.d);を確認しますか?

、$( "#myDiv")。append(msg。responseText);を試しましたか。?

于 2012-07-18T13:40:44.830 に答える