0

当使用 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 图表工具表。它自己创建它没有任何问题,但是一旦我从另一个 html 文件(如上)调用它,它会剥离 javascript 内容并因此返回纯的、未更改的 html。由于 javascript 代码本身使用模板标签(用于 Google 图表工具中的数据),我不能只从上面的 index.html 文件中运行它。

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

4

2 回答 2

1

您需要确保在页面准备就绪时拨打电话

<script>
$(document).ready(function() {
  $.ajax({
     url: "/gviz",
     cache: false,
     success: function(data){
       $("#daily_emails").html(data);
     }
  });
}); 
</script>
于 2012-08-31T14:04:56.527 回答
0

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

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

于 2012-08-31T18:26:38.177 回答