我有一个包含学生时间表的div,还有一个用于按学期选择的下拉框。
一旦他们选择了学期,就会有一个ajax帖子,但当它刷新时,它会在该div中显示整个网站(带有该学期的适当时间表)。
它看起来像网页中的iframe,如下所示:http://cl.ly/Dy3b
以下是ajax post脚本
<script type="text/javascript">
$(document).ready(function() {
$('#term').change(function() {
var form_data = {
term : $('#term').val(),
ajax : '1'
};
var u = $("#schedulePortletURL").attr("href");
$.ajax({
url: u,
type: 'POST',
data: form_data,
success: function(msg) {
//alert(u);
$('#view-schedule').html(msg);
}
});
return false;
});
});
</script>如果可能的话,你能给我一些建议来纠正这个问题吗?谢谢
发布于 2012-02-07 23:13:58
我的猜测是,对服务器的调用将返回一个完整的HTML页面,然后您的代码将整个HTML页面放入view-schedule div中。
要解决这个问题,请创建一个新的HTML页面,您可以调用该页面,其中包含一个html片段-您希望存在于view-schedule div中的块。然后将schedulePortletURL更改为指向新的HTML页。
或者,您可以取回html ( msg)并对其进行解析以提取出您感兴趣的数据,然后将过滤后的数据插入到view-schedule div中。
现有的网站有没有可以调用的API?
发布于 2012-02-07 23:18:57
另一种可能是您的服务器端脚本中的某种类型的错误检查器错误地触发并导致重定向到某个网页。然后,AJAX检索该网页,然后在DIV中显示。我以前也遇到过这种情况。您应该检查您的服务器端脚本。
发布于 2012-02-08 00:42:48
如果你不能完全控制网页,你正在抓取的页面应该被认为是不纯的,你应该使用iframe。请记住,使用.html(blob),您还将获得javascript代码、flash对象等,它们可能会被用来损害您的用户。
另一方面,如果您可以完全控制所获取的网页(我假设是这样的),那么您应该在模板中使用If语句来检查请求是否基于ajax:
伪服务端模板代码:
if not request.is_ajax():
import header.html
import body.html
if not request.is_ajax():
import footer.htmlhttps://stackoverflow.com/questions/9178668
复制相似问题