【发布时间】:2015-10-30 01:59:55
【问题描述】:
我要做的是获取一个 Python 文件(现在我有一个简单的测试文件,可以输出一些通用文本)并在单击按钮时让 Javascript 运行它。我希望通过 Javascript 将 Python 脚本的输出记录到控制台。
我已将 httpd.conf 文件设置为 ExecCGI 并将 Python 文件作为 .cgi 文件运行(请参阅http://www.editrocket.com/articles/python_apache_windows.html)。我还为每个人更改了 MAMP 文件夹及其所有内容的读/写权限,以防万一。但是,当我尝试对我的文件进行 Ajax 调用时,我收到 500 内部服务器错误。当我转到 localhost:8888/cgi-bin 时,我收到一个禁止访问错误。作为参考,我的 Javascript 位于 MAMP/htdocs/WebScraper/,而我的 Python 文件位于 MAMP/cgi-bin/。
这是我的 Python 文件代码:
print("Content-type: text/html")
print()
print("<p>Hello World</p>")
这是我的 Javascript 文件代码:
$(document).ready(function () {
$("#submit").click(function() {
$.ajax({
url: "/cgi-bin/cgi_test.py",
success: function(response) {
console.log(response)
}
});
});
});
我知道它正在访问文件,因为我收到的是 500 错误而不是 404,但我终其一生都无法弄清楚如何让它工作。有人有什么想法吗?
【问题讨论】:
-
你必须调用python解释器。如果您使用的是 unix/mac,请键入 which python,然后使用 #!
将路径放在文件顶部,通常是 /usr/bin/python。还要确保文件具有可执行权限。 -
另外,你的日志说什么?
-
好吧,我把解释器路径放在顶部,还运行了
chmod -R 777 /Applications/MAMP/,只是为了确保所有内容都被覆盖,但仍然没有运气。这是我的日志,[Thu Aug 06 12:55:31 2015] [error] [client 127.0.0.1] malformed header from script. Bad header=(): cgi_test.py, referer: http://localhost:8888/Web%20Scraper/和我的 Python 文件:#!/usr/bin/python print("Content-type: text/html") print() print("<html>") print("<body>") print("<p>Hello World</p>") print("</body>") print("</html>") -
对格式也很抱歉,我找不到任何方法在评论中制作代码块
-
其实刚刚想通了,不过还是感谢您的帮助,因为我也需要做这些事情!
标签: javascript jquery python apache permissions