2012-02-21 35 views
0

我一直在使用html,javascript和ajax的python程序工作了幾個星期。一切都在IE上運行完美,但是當我在其他瀏覽器上運行我的程序時,它不起作用。從那以後,我一直想知道爲什麼,但我仍然不知道。python文件中的Ajax

我做了一些證明使最簡單的功能,但仍然無法正常工作。我在我的所有函數中添加alert(xml.responseText);以查看Ajax函數返回的內容。在IE上返回我想要的確切答案,但在其他瀏覽器上,警報爲空。

我用ajax做了一些其他的python程序,它們都工作得很好。我可以注意到的唯一區別是,該程序(不工作的程序)在python文件中具有javascript和ajax函數,以便創建動態函數。 因此,我的pythonFile.py中有一個<script>標籤,而不像HTML中那樣有file.js的所有ajax功能。

有誰知道如果讓我的所有功能在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> 

回答

1

否 - 因爲瀏覽器不會看到Python腳本 - 僅輸出,但是這是一個字節流,並以任何方式不是「污點」,無論哪個(腳本)語言創建它。

所以問題必須在別處。通常的做法是查看相關瀏覽器的JavaScript控制檯並檢查是否有錯誤消息。

如果這沒有幫助,請開始查看網絡協議,您可以在其中查看所有請求和響應。這可能會給你一個想法。

另外alert()是一個非常糟糕的調試工具。嘗試使用JavaScript的日誌框架之一:http://blog.pdark.de/2011/11/24/logging-from-javascript/