如何使用AJAX从Python接收内容

时间:2015-08-28 00:02:23

标签: python html ajax

我正在尝试使用AJAX来更新从Python脚本返回的数据的表。当我使用AJAX请求Python脚本时,返回的文本是整个python脚本文件,而不仅仅是print命令中的内容。

我的AJAX文件:

...standard loadXMLDoc function with callback from W3C AJAX tutorial...


function doNow()
{

loadXMLDoc("cgi-bin/get.py",function()
  {
  if (request.readyState==4 && request.status==200)
    {
    document.getElementById("active_items").innerHTML=request.responseText;
    }
  });
}

window.onload=doNow();

为简单起见,我使用的python文件非常简单:

print("<div>something</div>")

import cgi
import cgitb
cgitb.enable(display=0, logdir="/path/to/logdir")

if __name__ == "__main__":
    print("Content-type:text/html\n\n")
    print("<div>something</div>")

加载页面时,<div id="active_items">的内容为:

print("
something
")

我已经:

  • 使用get.py
  • chmod 755 get.py文件设置为可执行文件
  • 已验证我的服务器上已启用CGI权限(即其他.cgi脚本正常工作)
  • 已验证我的AJAX脚本适用于其他静态文件,例如.txt文件

我确定我错过了一些明显的东西,但我会喜欢一些帮助!

1 个答案:

答案 0 :(得分:2)

添加到Python文件的顶部(假定为* nix环境):

#!/usr/bin/env python

如果您还没有,请确保您的Web服务器将.py Python脚本视为CGI脚本。 Apache的一个例子就是这个指令:

  <Directory /srv/www/yoursite/public_html>
        Options +ExecCGI
        AddHandler cgi-script .py
    </Directory>