python文件中的Ajax

Ajax inside a python file

本文关键字:Ajax 文件 python      更新时间:2023-09-26

我已经在一个使用html、javascript和ajax的python程序上工作了几个星期。IE上的一切都很完美,但当我在其他浏览器上运行程序时,它就不起作用了。从那以后,我一直想知道为什么,但我仍然不知道。

我做了一些关于做最简单函数的证明,但仍然不起作用。我在所有函数中添加alert(xml.responseText);,以查看Ajax函数返回的内容。在IE上返回我想要的确切答案,但在其他浏览器上,警报为空。

我用ajax制作了一些其他python程序,它们都运行得很好。我能注意到的唯一区别是,这个程序(不工作的程序)在python文件中有javascript和ajax函数,以便生成dinamic函数。因此,我的pythonFile.py中有一个<script>标记,而不是像HTML中那样有一个包含所有ajax函数的file.js

有人知道把我的所有函数都放在python文件中是否会影响其他浏览器,但不会影响IE8吗?

这是我的AJAX对象:

<script type="text/javascript">
 var xmlhttp;
 var request = true;
 function GetXmlHttpObject() {
    try {
        request = new XMLHttpRequest();
    } catch (trymicrosoft) {
        try {
        request = new ActiveXObject("Msxml12.XMLHTTP");
        } catch (othermicrosoft) {
            try {
            request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (failed) {
            return false; //or null
            }
        }
    }
    if (!request) 
       alert ("Error initializing XMLHTTPRequest!");
    return request;
 }

function respuestas(idEvaluacion){
   var prueba = "ESTA ES UNA PRUEBA";
   url = 'evaluacionDesempenoBD.py?prueba=' + prueba;
   xmlhttp = GetXmlHttpObject();
   if (!xmlhttp) {
    alert ("Browser does not support HTTP Request");
    return;
   }
   var xml = xmlhttp;
   xmlhttp.onreadystatechange = function (idEvaluacion) {
      if (xml.readyState == 4){
         alert(xml.responseText);
      }
   };
   xmlhttp.open("GET",url,true);
   xmlhttp.send(null);
   return true;
}
 </script>

否-因为浏览器从未看到Python脚本-只有输出,但这是一个字节流,无论是哪种(脚本)语言创建的,都不会受到任何"污染"。

所以问题一定出在别处。通常的方法是查看有问题的浏览器的JavaScript控制台,并检查是否有任何错误消息。

如果这没有帮助,那就开始查看网络协议,在那里你可以看到所有的请求和响应。这可能会给你一个主意。

此外,alert()对于调试来说是一个非常糟糕的"工具"。尝试JavaScript的日志记录框架之一:http://blog.pdark.de/2011/11/24/logging-from-javascript/