首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ajax div使用正确的数据重新加载,但整个网页都在div中

问ajax div使用正确的数据重新加载,但整个网页都在div中
EN

Stack Overflow用户
提问于 2012-02-07 23:10:47
回答 3查看 75关注 0票数 0

我有一个包含学生时间表的div,还有一个用于按学期选择的下拉框。

一旦他们选择了学期,就会有一个ajax帖子,但当它刷新时,它会在该div中显示整个网站(带有该学期的适当时间表)。

它看起来像网页中的iframe,如下所示:http://cl.ly/Dy3b

以下是ajax post脚本

代码语言:javascript
复制
<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>

如果可能的话,你能给我一些建议来纠正这个问题吗?谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-02-07 23:13:58

我的猜测是,对服务器的调用将返回一个完整的HTML页面,然后您的代码将整个HTML页面放入view-schedule div中。

要解决这个问题,请创建一个新的HTML页面,您可以调用该页面,其中包含一个html片段-您希望存在于view-schedule div中的块。然后将schedulePortletURL更改为指向新的HTML页。

或者,您可以取回html ( msg)并对其进行解析以提取出您感兴趣的数据,然后将过滤后的数据插入到view-schedule div中。

现有的网站有没有可以调用的API?

票数 1
EN

Stack Overflow用户

发布于 2012-02-07 23:18:57

另一种可能是您的服务器端脚本中的某种类型的错误检查器错误地触发并导致重定向到某个网页。然后,AJAX检索该网页,然后在DIV中显示。我以前也遇到过这种情况。您应该检查您的服务器端脚本。

票数 0
EN

Stack Overflow用户

发布于 2012-02-08 00:42:48

如果你不能完全控制网页,你正在抓取的页面应该被认为是不纯的,你应该使用iframe。请记住,使用.html(blob),您还将获得javascript代码、flash对象等,它们可能会被用来损害您的用户。

另一方面,如果您可以完全控制所获取的网页(我假设是这样的),那么您应该在模板中使用If语句来检查请求是否基于ajax:

伪服务端模板代码:

代码语言:javascript
复制
if not request.is_ajax():
    import header.html
import body.html
if not request.is_ajax():
    import footer.html
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9178668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档