AJAX成功回调 - 执行javascript的问题

时间:2012-08-31 14:02:38

标签: javascript ajax google-app-engine

在加载时使用AJAX触发python处理程序(在GAE中)时,它会正确加载HTML模板页面,但由于某种原因,它不会执行模板页面中的Javascript。它也不会在成功回调函数中返回该javascript。

这是index.html文件中的代码,它在加载时触发处理程序:

<div id="daily_emails"></div>

<script>
  $.ajax({
     url: "/gviz",
     cache: false,
     success: function(data){
       $("#daily_emails").html(data);
     }
  }); 
</script>

gviz处理程序生成一个html模板,其中包含自定义Google Chart Tools表。它创建它本身没有任何问题,但一旦我从另一个html文件(如上所述)调用它,它剥离javascript内容,结果返回普通的,未改变的,HTML。由于javascript代码本身使用模板标签(对于Google Chart Tool中的数据),我不能只从上面的index.html文件中运行它。

如果有帮助,我可以发布gviz处理程序呈现的模板的完整代码。

2 个答案:

答案 0 :(得分:1)

您需要确保在页面准备就绪时进行通话

<script>
$(document).ready(function() {
  $.ajax({
     url: "/gviz",
     cache: false,
     success: function(data){
       $("#daily_emails").html(data);
     }
  });
}); 
</script>

答案 1 :(得分:0)

您使用的是哪种浏览器?浏览器将解析返回的HTML,并可能删除非法HTML。如果返回的HTML中存在错误,则可能会发生这种情况。如果你包含'/ gviz'的结果会很有帮助。

由于听起来您返回的模板可能不包含纯粹有效的HTML,因此您可能需要将内容类型设置为“text / plain”的结果返回,以便浏览器不会尝试解析它