我刚刚开始了解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";
所以这不起作用。你可以帮助我让它工作吗? 请告诉我其中遗漏的内容。
答案 0 :(得分:0)
一种可能性:将绝对https:
网址更改为相对网址(例如/kailash/cgi/testing/getdata.pl
)。通过AJAX连接到不同域的唯一方法是使用JSONP。
另一种可能性:您的AJAX调用永远不会运行。在成功通话中添加alert()
以确保实际调用sendData()
。
Here's one example如何正确使用$.ajax
。
答案 1 :(得分:0)
,你试过吗? $(“#myDiv”)。append(msg.responseText); ?
答案 2 :(得分:0)
我已经解决了错误,由于这篇文章的帮助,我的代码中出现了错误: Check this
我取出了数据类型字段并仅使用:
$("#myDiv").append(msg);
现在我收到了ajax的内容。 AJAX非常酷,我向下滚动时添加了文字:)。